E5平台:PCIe3直通效率高,集成SAS不足惧
水涨船高,E5集成PCIe 3.0
过去几年间,英特尔至强(Xeon)系列处理器的发展可以说是突飞猛进,生产工艺和微架构交替进步的“钟摆”(Tick-Tock)战略,使得每一代产品都能从内核数量和单内核性能的提升中获益,而公认进步最大的则非2009年初推出基于45nm工艺和Nehalem-EP微架构的至强5500/3500系列莫属。
前英特尔公司资深副总裁兼CTO、现EMC信息基础架构产品事业部总裁兼COO Pat Gelsinger去年在EMC World 2011上主题演讲,专门有一页提及Intel高端至强处理器的性能提升幅度,而主流的至强5000/E5产品线也不遑多让
三年时间转眼过去,“钟摆”也摆动了一个完整的周期——工艺从45nm提高到32nm,微架构也从Nehalem演进至Sandy Bridge(SNB)。与代号Westmere的至强5600相比,同样采用32nm工艺的至强E5-2600系列内核数量、内存带宽(通道和频率)到用于处理器间互连的QPI有33%到100%的提升,无论CPU本地的处理能力,还是双路CPU之间的通信互联,都得到了巨大的改善。
与至强5600系列相比,至强E5-2600(Romley EP)平台每CPU的DDR3内存通道从3个增至4个,频率也从1333MHz提升到1600MHz,更重要的是CPU直接提供PCIe 3.0的连接能力,而2个QPI全部用于CPU之间的互连
但是,仅仅CPU-内存子系统的性能飙升是不够的,如果外联的通道不畅,就像“茶壶里倒饺子”,再强劲的性能也要大打折扣。特别是在格外注重横向扩展(Scale-out)能力的云时代,整个计算平台对外连接的带宽和响应速度需要提升到一个新的水平。
Intel 5520 IOH的使用场景之一:2个QPI分别连接到2个至强5600处理器上,提供36个PCIe 2.0线路
至强5600处理器通过1个QPI连接5520 IOH,提供36或72个PCI Express(PCIe)2.0线路(lane)。至强E5-2600则是每处理器提供40个PCIe 3.0线路,双处理器配置可达80个。虽然与PCIe 2.0相比,PCIe 3.0的传输率只是从5GT/s提高到了8GT/s,但由于采用了更为高效的编码方式,实际带宽接近倍增的效果,所以至强E5-2600的PCIe带宽比至强5600提高了一倍有余。并且,因为PCIe 3.0直接挂接在处理器上,省去了QPI和IOH的中间环节,I/O通路缩短的结果是响应时间的下降,有利于改善传输的延迟。
Intel 5520 IOH的使用场景之二:2个至强5600处理器各自用1个QPI接到1个5520,2个5520之间也通过1个QPI互连,共提供72个PCIe 2.0线路
不难看出,如果说Nehalem-EP微架构将内存控制器(MCH)集成到了CPU中,那么Romley-EP则进一步在CPU中集成了I/O控制器(IOH)的功能,英特尔称之为IIO(Integrated I/O),辅之以Intel DDIO(Data Direct I/O),可以进一步缩短传输的延迟。
40个PCIe 3.0线路可以4个或8个为单位自由组合成不同的端口,其中端口3a(x4或x8)可配置为NTB(非透明桥)
高速的设备如PCIe闪存卡、千兆/万兆网卡、存储HBA等直接连接到至强E5-2600处理器上,而像USB、SATA、PCI等相对低速的设备,则通过代号为Patsburg的C600平台控制集线器(PCH)连接,如本页第一张图的左下角所示。从这一点来说,C600与连接到5520 IOH上的ICH9/10颇有相似之处,但有一处看起来很强悍的升级——集成8端口的SAS(Serial Attached SCSI)及软RAID 5选项。
C600芯片和它支持的2个6Gb/s SATA接口、8个SAS接口(2个x4的SFF-8087内部连接器)
本文接下来的部分,就将通过测试,为您呈现IIO在延迟上的一些优势,和C600集成SAS的真实性能。#p#page_title#e#
C600集成SAS,可堪大用?
去年英特尔表示将在Romley平台上通过Patsburg PCH(也就是现在的C600)集成8端口SAS的时候,没有人想到速率的问题——6Gb/s当时就已成为SAS的主流,一年后的今天还用怀疑吗?可造化就是这么弄人,C600集成的偏偏是上一代的3Gb/s SAS。当笔者问到这一问题时,英特尔方面表示,C600在集成6Gb/s SAS时确实遇到了一些困难,为了不影响至强E5平台上市的步伐,就换成了比较稳妥的3Gb/s SAS(毕竟英特尔有Sunrise Lake的经验)。看来,SAS确实不是这家芯片巨人之所长……
无论8个3Gb/s SAS,还是x8 PCIe 2.0,C600的上行带宽(相当于x4 PCIe 2.0)都是瓶颈,重点在于连接的数量
不过,看了C600芯片的架构图,便会发现支持6Gb/s SAS其实没有太大的意义:C600与至强E5-2600处理器连接的上行通道是DMI 2.0,带宽相当于x4的PCIe 2.0,单向为20Gbps,而8端口的3Gb/s SAS为24Gbps,已经不敷使用。如果倍增为6Gb/s SAS,把端口数减至4个也不够。
编号为BD82027的C600芯片特写
尽管如此,通过测试,考察一下C600集成的8端口SAS,能在多大程度上接近2GB/s(合20Gbps——于PCIe 2.0而言)的理论带宽上限,对至强E5的用户选择什么样的SAS/RAID解决方案,还是有一定参考价值的。同时,我们还可以对比直接连接到E5-2600处理器上的PCIe SAS HBA,与C600集成SAS在延迟上的差异,对IIO的优异性有一个大致的感受。
Intel Server Board S2600GZ有2个PCIe 3.0 x24的“超级插槽”,测试的系统中插上的是具有2个x16插槽(配置为x8)和1个x8插槽的转接卡
LSI SAS 9211-8i HBA,基于LSISAS2008控制芯片,8个6Gb/s SAS端口,PCIe 2.0 x8主机接口
现在市面上还很难找到支持PCIe 3.0的扩展卡(E5平台的批量上市会很快改变这一局面),好在我们的目的也不是检验PCIe 3.0的带宽效率,PCIe 2.0 x8的SAS HBA就够了。也不需要RAID,因为RAID层会增加延迟。重要的是在8个端口直连的情况下,用最多8个驱动器提供不低于2GB/s的带宽——目前而言,只有SSD(固态盘)才能满足要求。
连接8个SSD(4个520,4个710)的LSI SAS 9211-8i HBA启动画面
为此,在我们相对有限的条件下,还是凑齐了4个240GB的Intel SSD 520,和4个200GB的Intel SSD 710。即使在C600的3Gb/s SAS条件下,每个SSD也能贡献最高超过250MB/s(以1024计算)的持续传输率,理论带宽总和突破2GB/S #p#page_title#e#
测试平台:8 SSD蓄势待发
本次测试在英特尔公司送测的Intel Server System R2000系统(2U机架式服务器)上进行,相关主要软硬件配置如下:
处理器2 × Intel E5-2690(8核/HT,2.90 GHz)
内存128 GB DDR3 1600MHz(16 × 8GB,Samsung)
主板Intel Server Board S2600GZ
系统盘1 × Intel SSD 710(2.5英寸SSD,200GB)@6Gb/s SATA
存储控制器Intel C600集成SAS(3Gb/s,8端口)
LSI SAS 9211-8i HBA(6Gb/s,8端口,PCIe 2.0 x8)
参测SSD4 × Intel SSD 520(2.5英寸,240GB,6Gb/s SATA)
4 × Intel SSD 710(2.5英寸,200GB,3Gb/s SATA)
操作系统Windows Server 2008 R2 64位企业版SP1
测试软件Iometer 1.1.0-rc1(512KB-10MB顺序读,4KB随机读)
打开上盖的Intel Server System R2000,可以看到中部作为系统盘的710 SSD,连接在C600的6Gb/s SATA接口上。远处是安装LSI SAS 9211-8i HBA的槽位,8个SSD(4×520 + 4×710)置于前面板左侧的驱动器仓内
240GB的Intel SSD 520,6Gb/s SATA接口,实测持续读速率超过500MB/s(若以10进制计算,可达约540MB/s)
本次测试的存储配置,包括板载的C600 SAS、Intel集成SAS RAID模块RMS25CB080、LSI SAS 9211-8i SAS HBA,Intel SSD 520和710各4个,还有1个连在6Gb/s SATA接口上的SSD 710作为系统盘
Iometer并发访问8个SSD的设置画面,只用了1个worker(相当于1个物理内核的1个线程,双路8核打开超线程,所以一共有32个worker)。目前Iometer还没有支持64位Windows的稳定版,所以测试使用的是1.1.0-rc1开发版 #p#page_title#e#
集成PCIe给力,SAS失意
测试开始时,我们先在Intel C600芯片集成的3Gb/s SAS端口和LSI SAS 9211-8i HBA集成的6Gb/s SAS端口下,对单个SSD 710和SSD 520的持续读传输能力进行了测试,并据此估算出8个SSD并发读取时的理论值:
最新推出的Intel SSD 520采用支持压缩算法的SandForce(现属于LSI公司)主控,6Gb/s SATA接口,持续读传输指标为550MB/s,在我们的测试中,接到LSI 6Gb/s SAS HBA上可达514MB/s(1024进制,若1000进制的话为539MB/s),考虑到HBA的接口效率,这一数值已是相当不错。SSD 710是3Gb/s SATA接口,300MB/s就别想了,在6Gb/s SAS HBA上有266MB/s,转移到C600的3Gb/s SAS上刚过250MB/s,SSD 520也是这个水平,可见已是单端口的能力极限。尽管如此,8个250MB/s也能有2GB/s,而PCIe 2.0 x4在实际情况下是不可能达到这个传输率的。
8个SSD并发读取,LSI 6Gb/s SAS HBA的性能(棕色三角线)逼近3GB/s,与理论测算值相去不远,表现非常优异;C600集成的3Gb/s SAS则令人大跌眼镜——与1GB/s尚有很大一段距离(浅蓝菱形块线)
最终的测试结果大出笔者之前的预料:原本估算PCIe 2.0 x4的实际带宽上限在1.7-1.8GB/s之间,如果C600集成的3Gb/s SAS能带着8个SSD接近这一水平,就是非常优异的表现了,就是1.5GB/s也非常不错。没想到实际的表现连预估的一半(850-900MB/s)都没有,哪怕换成8个15K RPM的SAS硬盘驱动器,也会成为瓶颈,可见设计还是不够完善。
倒是6Gb/s SAS HBA的表现令人欣慰,而“半个”CPU内核(每个worker对应1个线程)就可以轻松驱动8个SSD贡献2.8GB/s的持续带宽,也从一个侧面印证了以E5-2690为代表的新一代x86 CPU的I/O能力之强。
单个520 SSD 4KB随机读访问,响应时间随队列深度变化的情况
我们还测试了两种情况下,单个520 SSD进行随机读访问测试的响应时间。在队列深度低于64的时候,C600集成的3Gb/s SAS的响应时间是LSI 6Gb/s SAS HBA的1.5至2倍,随后上升至约3倍到5倍。这可以部分反映出PCIe直连CPU在缩短延迟上的优越性,虽然还是ms级的水平,但对于高性能的SSD而言,差别还是较明显的。当然,如果主要配合硬盘驱动器使用,那C600集成SAS相对较长的延迟,也就不显什么了。 #p#page_title#e#
PCIe 3.0 + 6Gb SAS的小惊喜
C600集成的SAS不给力,不代表集成的就没好货;前面说到现在市面上很难找到PCIe 3.0的扩展卡,但英特尔公司送测的Intel Server System R2000系统就带了一个。
Intel Server Board S2600GZ主板上,比PCIe 3.0 x24的“超级插槽”离CPU更近的,是这个不起眼的PCIe 3.0 x8 SAS扩展模块专用插槽
这款型号为Intel RMS25CB080的集成RAID模块,核心是一颗LSISAS2208芯片——最早支持PCIe 3.0标准的6Gb/s SAS RoC(RAID on Chip,片上RAID),SAS端口数量也是x8,因此带有2个SFF-8087内部x4连接器。
Intel RMS25CB080集成RAID模块,黑色散热片上方是连接缓存备份设备(如BBU,也可是闪存/电容组合)的连接器
背面的PCIe 3.0 x8 SAS扩展模块连接器和RoC闪存
除去散热片后的LSISAS2208和1GB DDR3 1033MHz嵌入式内存
支持PCIe 3.0的芯片——LSISAS2208双核RoC特写
虽然支持PCIe 3.0 x8,但是我们手头的设备实在挑战不了8GB/s的存储I/O,而且Intel的资料也显示LSISAS2208能支持到3000MB/s。在用2个520 SSD组成RAID 0的简单测试中,RMS25CB080集成RAID模块顺序读写都能达到差不多两倍于单个520 SSD的水平,相当令人满意。
顺序读在数据块尺寸为128KB至512KB时较失水准,写入则很稳定,高度接近1000MB/s