2、分布式中间代理功能在jmeter中也有,这个分页式代理是指可设置多台代理在不同PC中,通过远程进行控制,即通过使用多台机器运行的谓的agant来分担load generator自身的压力,并借引来获取更大的并发用户数,loadrunner也有此功能;
3、jmeter安装简单,只需要解压jmeter文件包到C盘上就可以了,不用安装,要是你想执行调试测试脚本,前提是:装上jdk和netbean插件,而loadrunner安装包有1G多,在一台P30,1G内存的PC上安装要一个多小时,要是装过旧的盗版还不能再装新版,解决办法倒是有,但麻烦且花时间;
4、Jmeter没有IP欺骗功能,IP欺骗是指在一台PC上多个IP地址分配给并发用户,这个功能对于模拟较真实的用户环境来说,是较有用,loadrunner有此功能;
5、jmeter也提供了一个利用本地proxy server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用,测试对象的个别参数要手工增加上去,还得附带装个IE代理,如 GoogleToolbarDownloader这些插件来捕捉参数,但是有一个工具badbody,利用这个工具可以录制 *** 作,然后选择将脚本保存为jmeter脚本,然后利用jmeter可以打开并修改脚本;
6、Jmeter的报表较少,对于要分析测试性能不足作为依据。如要知道数据库服务器或应用程序服务的cpu,money等参数,还得在相关服务器上另外写脚本记录服务器的性能;
7、jmeter做性能测试,主要是通过增加线程的数目,或者是设置循环次数来增加并发用户,而loadrunner可以通过在场景中选择要设置什么样的场景,然后选择虚拟用户数;
8、jmeter可以通过逻辑控制器实现复杂的测试行为,相当于loadrunner中的测试场景;
9、jmeter可以做web程序的功能测试,利用jmeter中的样本,可以做灰盒测试,loadrunner主要用来做性能测试;
10、jmeter是开源的,但是使用的人较少,网络上相关资料不全面,需要自己去揣摩,而loadrunner是商业软件,如果是正版本,有技术支持,同时,网络上的资料相当多;
11、Jmeter的脚本修改,主要是针对jmeter中各个部件的熟悉程序,已经相关的一些协议的掌握情况,而不依赖于编程,而loadrunner除了复杂的场景设置外,还需要掌握函数,修改脚本。
根据全球 游戏 和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的 游戏 市场收入超过美国和日本,成为全球榜首。
游戏 行业的快速发展、高额的攻击利润、日趋激烈的行业竞争,让中国 游戏 行业的进军者们,每天都面临业务和安全的双重挑战。
游戏 行业一直是竞争、攻击最为复杂的一个江湖。 曾经多少充满激情的创业团队、玩法极具特色的 游戏 产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的 游戏 产品,因为遭受DDoS攻击,而一蹶不振。
DDoS 攻击的危害
小蚁安盾安全发布的2017年上半年的 游戏 行业DDoS攻击态势报告中指出:2017年1月至2017年6月, 游戏 行业大于300G以上的攻击超过1800次,攻击最大峰值为608G; 游戏 公司每月平均被攻击次数高达800余次。
目前, 游戏 行业因DDoS攻击引发的危害主要集中在以下几点:
• 90%的 游戏 业务在被攻击后的2-3天内会彻底下线。
• 攻击超过2-3天以上,玩家数量一般会从几万人下降至几百人。
• 遭受DDoS攻击后, 游戏 公司日损失可达数百万元。
为什么 游戏 行业是 DDoS 攻击的重灾区?
据统计表明,超过50%的DDoS和CC攻击,都在针对 游戏 行业。 游戏 行业成为攻击的重灾区,主要有以下几点原因:
• 游戏 行业的攻击成本低,几乎是防护成本的1/N,攻防两端极度不平衡。 随着攻击方的手法日趋复杂、攻击点的日趋增多,静态防护策略已无法达到较好的效果,从而加剧了这种不平衡。
• 游戏 行业生命周期短。 一款 游戏 从出生到消亡,大多只有半年的时间,如果抗不过一次大的攻击,很可能就死在半路上。黑客也是瞄中了这一点,认定只要发起攻击, 游戏 公司一定会给保护费。
• 游戏 行业对连续性的要求很高,需要7 24小时在线。 因此如果受到DDoS攻击,很容易会造成大量的玩家流失。在被攻击的2-3天后,玩家数量从几万人掉到几百人的事例屡见不鲜。
• 游戏 公司之间的恶性竞争,也加剧了针对行业的DDoS攻击。
游戏 行业的 DDoS 攻击类型
• 空连接 攻击者与服务器频繁建立TCP连接,占用服务端的连接资源,有的会断开、有的则一直保持。空连接攻击就好比您开了一家饭馆,黑帮势力总是去排队,但是并不消费,而此时正常的客人也会无法进去消费。
• 流量型攻击 攻击者采用UDP报文攻击服务器的 游戏 端口,影响正常玩家的速度。用饭馆的例子,即流量型攻击相当于黑帮势力直接把饭馆的门给堵了。
• CC攻击 攻击者攻击服务器的认证页面、登录页面、 游戏 论坛等。还是用饭馆的例子,CC攻击相当于,坏人霸占收银台结账、霸占服务员点菜,导致正常的客人无法享受到服务。
• 假人攻击 模拟 游戏 登录和创建角色过程,造成服务器人满为患,影响正常玩家。
• 对玩家的DDoS攻击 针对对战类 游戏 ,攻击对方玩家的网络使其 游戏 掉线或者速度慢。
• 对网关DDoS攻击 攻击 游戏 服务器的网关,导致 游戏 运行缓慢。
• 连接攻击 频繁的攻击服务器,发送垃圾报文,造成服务器忙于解码垃圾数据。
游戏 安全痛点
• 业务投入大,生命周期短 一旦出现若干天的业务中断,将直接导致前期的投入化为乌有。
• 缺少为安全而准备的资源 游戏 行业玩家多、数据库和带宽消耗大、基础设施资源准备时间长,而安全需求往往没有被 游戏 公司优先考虑。
• 可被攻击的薄弱点多 网关、带宽、数据库、计费系统都可能成为 游戏 行业攻击的突破口,相关的存储系统、域名DNS系统、CDN系统等也会遭受攻击。
• 涉及的协议种类多 难以使用同一套防御模型去识别攻击并加以防护,许多 游戏 服务器多用加密私有协议,难以用通用的挑战机制进行验证。
• 实时性要求高,需要7 24小时在线 业务不能中断,成为DDoS攻击容易奏效的理由。
• 行业恶性竞争现象猖獗 DDoS攻击成为打倒竞争对手的工具。
如何判断已遭受 DDoS 攻击?
假定已排除线路和硬件故障的情况下,突然发现连接服务器困难、正在 游戏 的用户掉线等现象,则说明您很有可能是遭受了DDoS攻击。
目前, 游戏 行业的IT基础设施一般有 2 种部署模式:一种是采用云计算或者托管IDC模式,另外一种是自行部署网络专线。无论是前者还是后者接入,正常情况下, 游戏 用户都可以自由流畅地进入服务器并进行 游戏 娱乐 。因此,如果突然出现以下几种现象,可以基本判断是被攻击状态:
• 主机的IN/OUT流量较平时有显著的增长。
• 主机的CPU或者内存利用率出现无预期的暴涨。
• 通过查看当前主机的连接状态,发现有很多半开连接;或者是很多外部IP地址,都与本机的服务端口建立几十个以上的ESTABLISHED状态的连接,则说明遭到了TCP多连接攻击。
• 游戏 客户端连接 游戏 服务器失败或者登录过程非常缓慢。
• 正在进行 游戏 的用户突然无法 *** 作、或者非常缓慢、或者总是断线。
DDoS 攻击缓解最佳实践
目前,有效缓解DDoS攻击的方法可分为 3 大类:
• 架构优化
• 服务器加固
• 商用的DDoS防护服务
您可根据自己的预算和遭受攻击的严重程度,来决定采用哪些安全措施。
架构优化
在预算有限的情况下,建议您优先从自身架构的优化和服务器加固上下功夫,减缓DDoS攻击造成的影响。
部署 DNS 智能解析
通过智能解析的方式优化DNS解析,有效避免DNS流量攻击产生的风险。同时,建议您托管多家DNS服务商。
• 屏蔽未经请求发送的DNS响应信息 典型的DNS交换信息是由请求信息组成的。DNS解析器会将用户的请求信息发送至DNS服务器中,在DNS服务器对查询请求进行处理之后,服务器会将响应信息返回给DNS解析器。
但值得注意的是,响应信息是不会主动发送的。服务器在没有接收到查询请求之前,就已经生成了对应的响应信息,这些回应就应被丢弃。
• 丢弃快速重传数据包 即便是在数据包丢失的情况下,任何合法的DNS客户端都不会在较短的时间间隔内向同一DNS服务器发送相同的DNS查询请求。如果从相同IP地址发送至同一目标地址的相同查询请求发送频率过高,这些请求数据包可被丢弃。
• 启用TTL 如果DNS服务器已经将响应信息成功发送了,应该禁止服务器在较短的时间间隔内对相同的查询请求信息进行响应。
对于一个合法的DNS客户端,如果已经接收到了响应信息,就不会再次发送相同的查询请求。每一个响应信息都应进行缓存处理直到TTL过期。当DNS服务器遭遇大量查询请求时,可以屏蔽掉不需要的数据包。
• 丢弃未知来源的DNS查询请求和响应数据 通常情况下,攻击者会利用脚本对目标进行分布式拒绝服务攻击(DDoS攻击),而且这些脚本通常是有漏洞的。因此,在服务器中部署简单的匿名检测机制,在某种程度上可以限制传入服务器的数据包数量。
• 丢弃未经请求或突发的DNS请求 这类请求信息很可能是由伪造的代理服务器所发送的,或是由于客户端配置错误或者是攻击流量。无论是哪一种情况,都应该直接丢弃这类数据包。
非泛洪攻击 (non-flood) 时段,可以创建一个白名单,添加允许服务器处理的合法请求信息。白名单可以屏蔽掉非法的查询请求信息以及此前从未见过的数据包。
这种方法能够有效地保护服务器不受泛洪攻击的威胁,也能保证合法的域名服务器只对合法的DNS查询请求进行处理和响应。
• 启动DNS客户端验证 伪造是DNS攻击中常用的一种技术。如果设备可以启动客户端验证信任状,便可以用于从伪造泛洪数据中筛选出非泛洪数据包。
• 对响应信息进行缓存处理 如果某一查询请求对应的响应信息已经存在于服务器的DNS缓存之中,缓存可以直接对请求进行处理。这样可以有效地防止服务器因过载而发生宕机。
• 使用ACL的权限 很多请求中包含了服务器不具有或不支持的信息,可以进行简单的阻断设置。例如,外部IP地址请求区域转换或碎片化数据包,直接将这类请求数据包丢弃。
• 利用ACL,BCP38及IP信誉功能 托管DNS服务器的任何企业都有用户轨迹的限制,当攻击数据包被伪造,伪造请求来自世界各地的源地址。设置一个简单的过滤器可阻断不需要的地理位置的IP地址请求或只允许在地理位置白名单内的IP请求。
同时,也存在某些伪造的数据包可能来自与内部网络地址的情况,可以利用BCP38通过硬件过滤清除异常来源地址的请求。
部署负载均衡
通过部署负载均衡(SLB)服务器有效减缓CC攻击的影响。通过在SLB后端负载多台服务器的方式,对DDoS攻击中的CC攻击进行防护。
部署负载均衡方案后,不仅具有CC攻击防护的作用,也能将访问用户均衡分配到各个服务器上,减少单台服务器的负担,加快访问速度。
使用专有网络
通过网络内部逻辑隔离,防止来自内网肉鸡的攻击。
提供余量带宽
通过服务器性能测试,评估正常业务环境下能承受的带宽和请求数,确保流量通道不止是日常的量,有一定的带宽余量可以有利于处理大规模攻击。
服务器安全加固
在服务器上进行安全加固,减少可被攻击的点,增大攻击方的攻击成本:
• 确保服务器的系统文件是最新的版本,并及时更新系统补丁。
• 对所有服务器主机进行检查,清楚访问者的来源。
• 过滤不必要的服务和端口。例如,>
一、前端优化
网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面,我只是从实际经历出发,分享一下自己所尝试过的网站性能优化方法。之所以在标题上挂一个web20,是因为本文更偏重于中小网站的性能优化,我所使用的系统也是典型web20的LAMP架构。
首先讲讲前端的优化,用户访问网页的等待时间,有80%是发生在浏览器前端,特别是页面和页面中各种元素(、CSS、Javascript、flash)的下载之上。因此在很多情况下,相对于把大量的时间花在艰苦而繁杂的程序改进上,前端的优化往往能起到事半功倍的作用。雅虎最近将内部使用的性能测试工具yslow向第三方公开,并发布了著名的网站性能优化的十三条规则,建议你下载并安装yslow,并作为测评网站优化效果的工具。下面我挑其中特别有价值的具体说明一下优化的方法:
对于第一次访问您网站,尚未在浏览器cache中缓存您网站内容的用户,我们可以做的事情包括:
1)减少一个页面访问所产生的)会有利于提高浏览器并行下载网页内容的能力。
对于您网站的经常性访问用户,主要的优化思路就是最大限度利用用户浏览器的cache来减少服务器的开销。
1)在header中添加过期时间(ExpiresHeader)
在header中给静态内容添加一个较长的过期时间,这样可以使用户今后访问只读取缓存中的文件,而不会与服务器产生任何的交互。不过这样做也存在一些问题,当、CSS和js文件更新时,用户如果不刷新浏览器,就无法获得此更新。这样,我们在对、css和js文件修改时,必须要进行重命名,才能保证用户访问到最新的内容。这可能会给开发造成不小的麻烦,因为这些文件可能被站点中的许多文件所引用。flickr提出的解决办法是通过urlrewrite使不同版本号的URL事实上指向同一个文件,这是一个聪明的办法,因为url级别的 *** 作效率是很高的,可以给开发过程提供不少便利。
要理解为什么这样做,必须要了解浏览器访问url时的工作机制:
a第一次访问url时,用户从服务器段获取页面内容,并把相关的文件(images,css,js)放在高速缓存中,也会把文件头中的expiredtime,lastmodified,ETags等相关信息也一同保留下来。
b用户重复访问url时,浏览器首先看高速缓存中是否有本站同名的文件,如果有,则检查文件的过期时间;如果尚未过期,则直接从缓存中读取文件,不再访问服务器。
c如果缓存中文件的过期时间不存在或已超出,则浏览器会访问服务器获取文件的头信息,检查lastmodifed和ETags等信息,如果发现本地缓存中的文件在上次访问后没被修改,则使用本地缓存中的文件;如果修改过,则从服务器上获取最新版本。
我的经验,如果可能,尽量遵循此原则给静态文件添加过期时间,这样可以大幅度减少用户对服务器资源的重复访问。
2)将css和js文件放在独立外部文件中引用
将css和js文件放在独立文件中,这样它们会被单独缓存起来,在访问其他页面时可以从浏览器的高速缓存中直接读取。一些网站的首页可能是例外的,这些首页的自身浏览可能并不大,但却是用户访问网站的第一印象以及导向到其他页面的起点,也可能这些页面本身使用了大量的ajax局部刷新及技术,这时可以将css和js文件直接写在页面中。
3)去掉重复的脚本
在IE中,包含重复的js脚本会导致浏览器的缓存不被使用,仔细检查一下你的程序,去掉重复引用的脚本应该不是一件很难的事情。
4)避免重定向的发生
除了在header中人为的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。比如用户在访问,服务器会通过301转向到/,在后面加了一个“/”。如果服务器的配置不好,这也会给服务器带来额外的负担。通过配置apache的alias或使用mod_rewrite模块等方法,可以避免不必要的重定向。
还有一些,比如使用CDN分发机制、避免CSS表达式等、避免使用ETags等,因为不太常用,这里就不再赘述了。
做完了上述的优化,可以试着用yslow测试一下网页的性能评分,一般都可以达到70分以上了。
当然,除了浏览器前端和静态内容的优化之外,还有针对程序脚本、服务器、数据库、负载的优化,这些更深层次的优化方法对技术有更高的要求。本文的后半部分将重点探讨后端的优化。
二、后端优化
上次写完web20网站前端优化篇之后,一直想写写后端优化的方法,今天终于有时间将思路整理了出来。
前端优化可以避免我们造成无谓的服务器和带宽资源浪费,但随着网站访问量的增加,仅靠前端优化已经不能解决所有问题了,后端软件处理并行请求的能力、程序运行的效率、硬件性能以及系统的可扩展性,将成为影响网站性能和稳定的关键瓶颈所在。优化系统和程序的性能可以从以下的方面来入手:
1)apache、mysql等软件的配置的优化
尽管apache和mysql等软件在安装后使用的默认设置足以使你的网站运行起来,但是通过调整mysql和apache的一些系统参数,还是可以追求更高的效率和稳定性。这个领域中有很多专业的文章和论坛(比如:),要想掌握也需要进行深入的研究和实践,这里就不重点讨论了。
2)应用程序环境加速
这里仅以我最常应用的php开发环境为例,有一些工具软件可以通过优化PHP运行环境来达到提速的目的,其基本原理大致是将PHP代码预编译并缓存起来,而不需要改变任何代码,所以比较简单,可以将php的运行效率提升50%以上。比较常用的php加速工具有:APC(package-infophppackage=APC)、TurckMMCache()、phpaccelebrator(),还有收费的ZendPerformanceSuite
3)将静态内容和动态内容分开处理
apache是一个功能完善但比较庞大的webserver,它的资源占用基本上和同时运行的进程数呈正比,对服务器内存的消耗比较大,处理并行任务的效率也一般。在一些情况下,我们可以用比较轻量级的webserver来host静态的、样式表和javascript文件,这样可以大大提升静态文件的处理速度,还可以减少对内存占用。我使用的webserver是来自俄罗斯的nginx,其他选择方案还包括lig>
4)基于反向代理的前端访问负载均衡
当一台前端服务器不足以应付用户访问时,通过前端机实现web访问的负载均衡是最快速可行的方案。通过apache的mod_proxy可以实现基于反向代理的负载均衡,这里推荐使用nginx做代理服务器,处理速度较apache更快一些。
5)应用缓存技术提高数据库效能,文件缓存和分布式缓存
数据库访问处理并发访问的能力是很多网站应用的关键瓶颈,在想到使用主从结构和多farm的方式构建服务器集群之前,首先应该确保充分使用了数据库查询的缓存。一些数据库类型(如mysql的innoDB)自身内置对缓存的支持,此外,还可以利用程序方法将常用的查询通过文件或内存缓存起来。比如通过php中的ob_start和文件读写函数可以很方便的实现文件形式的缓存,而如果你拥有多台服务器,可以通过memcache技术通过分布式共享内存来对数据库查询进行缓存,不仅效率高而且扩展性好,memcache技术在livejournal和Craigslistorg等知名网站应用中都得到了检验。
6)服务器运行状态的检测,找到影响性能的瓶颈所在
系统优化没有一劳永逸的方法,需要通过检测服务器的运行状态来及时发现影响性能的瓶颈,以及可能存在的潜在问题,因为网站的性能,永远取决于木桶中的短板。可以编写一些脚本来检测web服务的运行,也有一些开源的软件也提供了很好的功能
7)良好的扩展架构是稳定和性能的基础
一些技巧和窍门可以帮你度过眼前的难关,但要想使网站具备应付大规模访问的能力,则需要从系统架构上进行彻底的规划,好在很多前人无私的把他们架构
网站的经验分享给我们,使我们可以少走甚多弯路。我最近读到的两篇有启发的文章:
-从LiveJournal后台发展看大规模网站性能优化方法
-Myspace的六次重构
最后不得不提到程序编码和数据库结构对性能的影响,一系列糟糕的循环语句,一个不合理的查询语句、一张设计不佳的数据表或索引表,都足以会使应用程序运行的速度成倍的降低。培养全局思考的能力,养成良好的编程习惯,并对数据库运行机制有所了解,是提高编程质量的基础。
上海交通大学是教育部直属、教育部与上海市共建的著名高等学府,也是国家重点建设、全国首批7所“211工程”和首批9所“985工程”建设的高校之一。该校在信息化建设方面始终走在前列,率先建成了采用WDM技术的跨城域校园网,为数万名师生提供高质量的网络接入和信息服务。随着学校规模的不断扩大,上海交通大学在徐汇、闵行、七宝三个校区之间部署了带宽达10Gbps的校园网主干环路;三个主要校区和其他校区间也采用了1Gbps链路构成网状拓扑结构,使每个校区与其他校区之间存在两条以上的冗余链路,保证了各个校区间互连互通;闵行校区内主要汇聚点之间也分别实现了10G环状连接,保障了校园网运行的稳定、可靠。作为中国教育和科研计算机网络(Cernet)华东南地区网、上海教育与科研计算机网(Shernet)和校园网(SJTUnet)的建设、管理单位,上海交通大学网络信息中心拥有很强的科研实力,长期担负着三大网络运营维护的艰巨任务。在此过程中,该中心充分发挥科研能力上的优势,独立自主地解决了许多难度较大的运维问题。我们在连载中就曾经提到,该校两年前在对校园网出口入侵检测系统的选型中,遇到了市售产品难以满足需求的窘况。在充分分析了业务需求的前提下,网络信息中心的老师带领团队自行研发,以多组x86服务器分布式处理的方式实现了对万兆链路的实时监测。这样的方式不仅构建了一个开放的、可以承载多业务的科研平台,更将科研成果转化为实际的安全服务,为校园网的稳定运行提供了保障。
虽然上海交通大学校园网目前拥有多条出口链路、总计超过10Gbps的链路带宽,但在愈发丰富、模式愈发复杂的网络应用面前,也不是永不拥塞的高速路。目前,流量的可视化与可控性已成为老师们重点关注的问题,他们需要一个强大的应用流量分析管理系统,为运营维护乃至下一步网络建设规划提供准确的参考依据。经过细致地评估,老师们初步选定了连续两年获得计算机世界年度产品奖的Panabit应用层流量管理系统。不过,与大多数同级别通信、安全产品不同,该系统运行在x86而非MultiCore-MIPS或NP平台上,而老师们(或者说是大多数人)对于x86平台在万兆环境中稳定工作都没有太多信心。
来吧,就让测试去证明一切。
规格全面提升的5520平台
上海交通大学网络信息中心的老师们为这次测试准备了一台戴尔PowerEdge R710服务器,它是戴尔为第一代Nehalem-EP处理器平台及其后续Westmere-EP处理器平台设计的2U机架式产品。PowerEdge R710基于英特尔5520 IOH芯片(代号Tylersburg-36D)设计,提供了36个PCIe20信道,最多支持两颗英特尔Xeon 5500/5600系列处理器,可以搭配英特尔ICH9或者ICH10使用。在英特尔尚未明确推出Sandy Bridge嵌入式解决方案的今天,基于5520芯片组的产品仍然是目前设备制造商与用户能够获取到的最高端x86平台。
得益于戴尔灵活的定制化销售模式,测试使用的这台PowerEdge R710配置了一颗英特尔Xeon X5690处理器。它支持SMT超线程技术(测试中关闭),具有6个核心、12个硬件线程,主频达到346GHz,最大的Turbo Boost频率高达373GHz,属于英特尔32nm Westmere-EP处理器家族中的最高端产品。这颗处理器中的每个核心都具有32KB的L1指令缓存和L1数据缓存及256KB的L2缓存,所有核心共享一个12MB的L3缓存。此外,Xeon X5690还通过两个64GT/s的QPI总线和另一颗处理器以及5520/5500 IOH芯片通信,QPI总线是一个双向的并行总线,在X5690上,其单向带宽为128GB/s。
由于集成了较高规格的内存控制器,单颗Xeon X5690可以支持3通道R-ECC DDR3内存,每通道又支持最多3个R-ECC DDR3 DIMM。在使用能够支持的最高规格的16GB内存条的时候,每颗处理器可拥有144GB的总内存容量,整个系统(双路配置)则可达到288GB的最大容量。X5690支持的最大内存频率规格为DDR3-1333,不过当所有DIMM插槽都插满内存的时候,运行频率将会降低至1066。而本次测试使用的这台PowerEdge R710服务器配置了3条4GB容量的内存,运行在3通道模式。
英特尔Xeon X5690处理器通过64GT/s的QPI总线连接到5520 IOH上,而IOH目前主要的功能就是提供更多的PCIe总线连接,这正是网络通信产品所需要的。英特尔5520 IOH提供了36个PCIe 20信道和一个连接ICH芯片的ESI总线接口,这个ESI总线就是桌面级IOH芯片常用的DMI总线,其实质是一个x4的PCIe 10界面。而36个PCIe 20信道则以10个端口的形式提供,分别为8个x4的端口以及两个x2的端口。其中8个x4的端口可以聚合为4个x8或者两个x16端口,另外两个x2的端口则可以聚合为一个x4端口,但是不能与其余8个x4端口进一步聚合。我们知道,PCIe 20的每个信道可以提供50GT/s的单向传输速率(500MB/s),因此5520 IOH提供了巨大的IO带宽。在不需要这么多带宽的场合,英特尔也推出了一个简化版的5500 IOH产品,将PCIe信道数量减为24个。它的代号是Tylersburg-24,这一命名就体现出了PCIe信道的数目。
与时俱进的网络子系统
和桌面级与嵌入式产品不同,在服务器上,所有的高速设备都直接连接到IOH芯片上,而不是相对低速的ICH芯片,理论上减少了性能瓶颈。测试使用的PowerEdge R710服务器上提供了1条PCIe v20 x16插槽和两条PCIe v20 x4插槽,分别连接到3组顶级网络控制器。其中一组是一块基于英特尔82599EB芯片的英特尔X520双口万兆网卡,另两组是基于英特尔82576EB芯片的双口千兆网卡,一共提供了两个万兆接口和4个千兆接口。实际上,戴尔PowerEdge R710还板载了4个基于Broadcom网络控制器的千兆接口,但在测试中并未用做业务处理。
英特尔X520双口万兆网卡使用的82599EB是一个强大的网络控制器,是目前英特尔在万兆级产品中最顶级的型号。该芯片原生两个万兆接口,每个接口都可以支持128个TX/RX队列,并可以根据情况最多划分为64个RSS(Receive Side Scaling,接收方扩展)队列。此外,82599EB还支持MSI和MSI-X(Extended Message Signaled Interrupt,扩展消息告知中断)特性和一些与数据中心应用密切相关的高级功能。由于万兆环境下的数据传输需要巨大的带宽,82599EB推荐使用PCIe v20 x8或以上规格接口进行连接,否则可能会出现瓶颈。
英特尔82576EB也是比较强大的网络控制器,使用PCIe v20 x4接口进行连接,是82580出现前千兆级产品中的顶级型号。该芯片原生两个千兆接口,每个接口支持16个TX/RX队列,最多可划分16个RSS队列。和82599EB一样,82576EB也支持MSI和MSI-X,并支持VMDq、VMDc等虚拟化功能。在与英特尔服务器级Tylersburg IOH芯片搭配时,82576EB和82599EB可以通过I/O AT技术加速其DMA传输性能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)