E5平臺(tái):PCIe3直通效率高,集成SAS不足懼
水漲船高,E5集成PCIe 3.0
過去幾年間,英特爾至強(qiáng)(Xeon)系列處理器的發(fā)展可以說是突飛猛進(jìn),生產(chǎn)工藝和微架構(gòu)交替進(jìn)步的“鐘擺”(Tick-Tock)戰(zhàn)略,使得每一代產(chǎn)品都能從內(nèi)核數(shù)量和單內(nèi)核性能的提升中獲益,而公認(rèn)進(jìn)步最大的則非2009年初推出基于45nm工藝和Nehalem-EP微架構(gòu)的至強(qiáng)5500/3500系列莫屬。
前英特爾公司資深副總裁兼CTO、現(xiàn)EMC信息基礎(chǔ)架構(gòu)產(chǎn)品事業(yè)部總裁兼COO Pat Gelsinger去年在EMC World 2011上主題演講,專門有一頁(yè)提及Intel高端至強(qiáng)處理器的性能提升幅度,而主流的至強(qiáng)5000/E5產(chǎn)品線也不遑多讓
三年時(shí)間轉(zhuǎn)眼過去,“鐘擺”也擺動(dòng)了一個(gè)完整的周期——工藝從45nm提高到32nm,微架構(gòu)也從Nehalem演進(jìn)至Sandy Bridge(SNB)。與代號(hào)Westmere的至強(qiáng)5600相比,同樣采用32nm工藝的至強(qiáng)E5-2600系列內(nèi)核數(shù)量、內(nèi)存帶寬(通道和頻率)到用于處理器間互連的QPI有33%到100%的提升,無(wú)論CPU本地的處理能力,還是雙路CPU之間的通信互聯(lián),都得到了巨大的改善。
與至強(qiáng)5600系列相比,至強(qiáng)E5-2600(Romley EP)平臺(tái)每CPU的DDR3內(nèi)存通道從3個(gè)增至4個(gè),頻率也從1333MHz提升到1600MHz,更重要的是CPU直接提供PCIe 3.0的連接能力,而2個(gè)QPI全部用于CPU之間的互連
但是,僅僅CPU-內(nèi)存子系統(tǒng)的性能飆升是不夠的,如果外聯(lián)的通道不暢,就像“茶壺里倒餃子”,再?gòu)?qiáng)勁的性能也要大打折扣。特別是在格外注重橫向擴(kuò)展(Scale-out)能力的云時(shí)代,整個(gè)計(jì)算平臺(tái)對(duì)外連接的帶寬和響應(yīng)速度需要提升到一個(gè)新的水平。
Intel 5520 IOH的使用場(chǎng)景之一:2個(gè)QPI分別連接到2個(gè)至強(qiáng)5600處理器上,提供36個(gè)PCIe 2.0線路
至強(qiáng)5600處理器通過1個(gè)QPI連接5520 IOH,提供36或72個(gè)PCI Express(PCIe)2.0線路(lane)。至強(qiáng)E5-2600則是每處理器提供40個(gè)PCIe 3.0線路,雙處理器配置可達(dá)80個(gè)。雖然與PCIe 2.0相比,PCIe 3.0的傳輸率只是從5GT/s提高到了8GT/s,但由于采用了更為高效的編碼方式,實(shí)際帶寬接近倍增的效果,所以至強(qiáng)E5-2600的PCIe帶寬比至強(qiáng)5600提高了一倍有余。并且,因?yàn)镻CIe 3.0直接掛接在處理器上,省去了QPI和IOH的中間環(huán)節(jié),I/O通路縮短的結(jié)果是響應(yīng)時(shí)間的下降,有利于改善傳輸?shù)难舆t。
Intel 5520 IOH的使用場(chǎng)景之二:2個(gè)至強(qiáng)5600處理器各自用1個(gè)QPI接到1個(gè)5520,2個(gè)5520之間也通過1個(gè)QPI互連,共提供72個(gè)PCIe 2.0線路
不難看出,如果說Nehalem-EP微架構(gòu)將內(nèi)存控制器(MCH)集成到了CPU中,那么Romley-EP則進(jìn)一步在CPU中集成了I/O控制器(IOH)的功能,英特爾稱之為IIO(Integrated I/O),輔之以Intel DDIO(Data Direct I/O),可以進(jìn)一步縮短傳輸?shù)难舆t。
40個(gè)PCIe 3.0線路可以4個(gè)或8個(gè)為單位自由組合成不同的端口,其中端口3a(x4或x8)可配置為NTB(非透明橋)
高速的設(shè)備如PCIe閃存卡、千兆/萬(wàn)兆網(wǎng)卡、存儲(chǔ)HBA等直接連接到至強(qiáng)E5-2600處理器上,而像USB、SATA、PCI等相對(duì)低速的設(shè)備,則通過代號(hào)為Patsburg的C600平臺(tái)控制集線器(PCH)連接,如本頁(yè)第一張圖的左下角所示。從這一點(diǎn)來說,C600與連接到5520 IOH上的ICH9/10頗有相似之處,但有一處看起來很強(qiáng)悍的升級(jí)——集成8端口的SAS(Serial Attached SCSI)及軟RAID 5選項(xiàng)。
C600芯片和它支持的2個(gè)6Gb/s SATA接口、8個(gè)SAS接口(2個(gè)x4的SFF-8087內(nèi)部連接器)
本文接下來的部分,就將通過測(cè)試,為您呈現(xiàn)IIO在延遲上的一些優(yōu)勢(shì),和C600集成SAS的真實(shí)性能。#p#page_title#e#
C600集成SAS,可堪大用?
去年英特爾表示將在Romley平臺(tái)上通過Patsburg PCH(也就是現(xiàn)在的C600)集成8端口SAS的時(shí)候,沒有人想到速率的問題——6Gb/s當(dāng)時(shí)就已成為SAS的主流,一年后的今天還用懷疑嗎?可造化就是這么弄人,C600集成的偏偏是上一代的3Gb/s SAS。當(dāng)筆者問到這一問題時(shí),英特爾方面表示,C600在集成6Gb/s SAS時(shí)確實(shí)遇到了一些困難,為了不影響至強(qiáng)E5平臺(tái)上市的步伐,就換成了比較穩(wěn)妥的3Gb/s SAS(畢竟英特爾有Sunrise Lake的經(jīng)驗(yàn))??磥?,SAS確實(shí)不是這家芯片巨人之所長(zhǎng)……
無(wú)論8個(gè)3Gb/s SAS,還是x8 PCIe 2.0,C600的上行帶寬(相當(dāng)于x4 PCIe 2.0)都是瓶頸,重點(diǎn)在于連接的數(shù)量
不過,看了C600芯片的架構(gòu)圖,便會(huì)發(fā)現(xiàn)支持6Gb/s SAS其實(shí)沒有太大的意義:C600與至強(qiáng)E5-2600處理器連接的上行通道是DMI 2.0,帶寬相當(dāng)于x4的PCIe 2.0,單向?yàn)?0Gbps,而8端口的3Gb/s SAS為24Gbps,已經(jīng)不敷使用。如果倍增為6Gb/s SAS,把端口數(shù)減至4個(gè)也不夠。
編號(hào)為BD82027的C600芯片特寫
盡管如此,通過測(cè)試,考察一下C600集成的8端口SAS,能在多大程度上接近2GB/s(合20Gbps——于PCIe 2.0而言)的理論帶寬上限,對(duì)至強(qiáng)E5的用戶選擇什么樣的SAS/RAID解決方案,還是有一定參考價(jià)值的。同時(shí),我們還可以對(duì)比直接連接到E5-2600處理器上的PCIe SAS HBA,與C600集成SAS在延遲上的差異,對(duì)IIO的優(yōu)異性有一個(gè)大致的感受。
Intel Server Board S2600GZ有2個(gè)PCIe 3.0 x24的“超級(jí)插槽”,測(cè)試的系統(tǒng)中插上的是具有2個(gè)x16插槽(配置為x8)和1個(gè)x8插槽的轉(zhuǎn)接卡
LSI SAS 9211-8i HBA,基于LSISAS2008控制芯片,8個(gè)6Gb/s SAS端口,PCIe 2.0 x8主機(jī)接口
現(xiàn)在市面上還很難找到支持PCIe 3.0的擴(kuò)展卡(E5平臺(tái)的批量上市會(huì)很快改變這一局面),好在我們的目的也不是檢驗(yàn)PCIe 3.0的帶寬效率,PCIe 2.0 x8的SAS HBA就夠了。也不需要RAID,因?yàn)镽AID層會(huì)增加延遲。重要的是在8個(gè)端口直連的情況下,用最多8個(gè)驅(qū)動(dòng)器提供不低于2GB/s的帶寬——目前而言,只有SSD(固態(tài)盤)才能滿足要求。
連接8個(gè)SSD(4個(gè)520,4個(gè)710)的LSI SAS 9211-8i HBA啟動(dòng)畫面
為此,在我們相對(duì)有限的條件下,還是湊齊了4個(gè)240GB的Intel SSD 520,和4個(gè)200GB的Intel SSD 710。即使在C600的3Gb/s SAS條件下,每個(gè)SSD也能貢獻(xiàn)最高超過250MB/s(以1024計(jì)算)的持續(xù)傳輸率,理論帶寬總和突破2GB/S #p#page_title#e#
測(cè)試平臺(tái):8 SSD蓄勢(shì)待發(fā)
本次測(cè)試在英特爾公司送測(cè)的Intel Server System R2000系統(tǒng)(2U機(jī)架式服務(wù)器)上進(jìn)行,相關(guān)主要軟硬件配置如下:
處理器2 × Intel E5-2690(8核/HT,2.90 GHz)
內(nèi)存128 GB DDR3 1600MHz(16 × 8GB,Samsung)
主板Intel Server Board S2600GZ
系統(tǒng)盤1 × Intel SSD 710(2.5英寸SSD,200GB)@6Gb/s SATA
存儲(chǔ)控制器Intel C600集成SAS(3Gb/s,8端口)
LSI SAS 9211-8i HBA(6Gb/s,8端口,PCIe 2.0 x8)
參測(cè)SSD4 × Intel SSD 520(2.5英寸,240GB,6Gb/s SATA)
4 × Intel SSD 710(2.5英寸,200GB,3Gb/s SATA)
操作系統(tǒng)Windows Server 2008 R2 64位企業(yè)版SP1
測(cè)試軟件Iometer 1.1.0-rc1(512KB-10MB順序讀,4KB隨機(jī)讀)
打開上蓋的Intel Server System R2000,可以看到中部作為系統(tǒng)盤的710 SSD,連接在C600的6Gb/s SATA接口上。遠(yuǎn)處是安裝LSI SAS 9211-8i HBA的槽位,8個(gè)SSD(4×520 + 4×710)置于前面板左側(cè)的驅(qū)動(dòng)器倉(cāng)內(nèi)
240GB的Intel SSD 520,6Gb/s SATA接口,實(shí)測(cè)持續(xù)讀速率超過500MB/s(若以10進(jìn)制計(jì)算,可達(dá)約540MB/s)
本次測(cè)試的存儲(chǔ)配置,包括板載的C600 SAS、Intel集成SAS RAID模塊RMS25CB080、LSI SAS 9211-8i SAS HBA,Intel SSD 520和710各4個(gè),還有1個(gè)連在6Gb/s SATA接口上的SSD 710作為系統(tǒng)盤
Iometer并發(fā)訪問8個(gè)SSD的設(shè)置畫面,只用了1個(gè)worker(相當(dāng)于1個(gè)物理內(nèi)核的1個(gè)線程,雙路8核打開超線程,所以一共有32個(gè)worker)。目前Iometer還沒有支持64位Windows的穩(wěn)定版,所以測(cè)試使用的是1.1.0-rc1開發(fā)版 #p#page_title#e#
集成PCIe給力,SAS失意
測(cè)試開始時(shí),我們先在Intel C600芯片集成的3Gb/s SAS端口和LSI SAS 9211-8i HBA集成的6Gb/s SAS端口下,對(duì)單個(gè)SSD 710和SSD 520的持續(xù)讀傳輸能力進(jìn)行了測(cè)試,并據(jù)此估算出8個(gè)SSD并發(fā)讀取時(shí)的理論值:
最新推出的Intel SSD 520采用支持壓縮算法的SandForce(現(xiàn)屬于LSI公司)主控,6Gb/s SATA接口,持續(xù)讀傳輸指標(biāo)為550MB/s,在我們的測(cè)試中,接到LSI 6Gb/s SAS HBA上可達(dá)514MB/s(1024進(jìn)制,若1000進(jìn)制的話為539MB/s),考慮到HBA的接口效率,這一數(shù)值已是相當(dāng)不錯(cuò)。SSD 710是3Gb/s SATA接口,300MB/s就別想了,在6Gb/s SAS HBA上有266MB/s,轉(zhuǎn)移到C600的3Gb/s SAS上剛過250MB/s,SSD 520也是這個(gè)水平,可見已是單端口的能力極限。盡管如此,8個(gè)250MB/s也能有2GB/s,而PCIe 2.0 x4在實(shí)際情況下是不可能達(dá)到這個(gè)傳輸率的。
8個(gè)SSD并發(fā)讀取,LSI 6Gb/s SAS HBA的性能(棕色三角線)逼近3GB/s,與理論測(cè)算值相去不遠(yuǎn),表現(xiàn)非常優(yōu)異;C600集成的3Gb/s SAS則令人大跌眼鏡——與1GB/s尚有很大一段距離(淺藍(lán)菱形塊線)
最終的測(cè)試結(jié)果大出筆者之前的預(yù)料:原本估算PCIe 2.0 x4的實(shí)際帶寬上限在1.7-1.8GB/s之間,如果C600集成的3Gb/s SAS能帶著8個(gè)SSD接近這一水平,就是非常優(yōu)異的表現(xiàn)了,就是1.5GB/s也非常不錯(cuò)。沒想到實(shí)際的表現(xiàn)連預(yù)估的一半(850-900MB/s)都沒有,哪怕?lián)Q成8個(gè)15K RPM的SAS硬盤驅(qū)動(dòng)器,也會(huì)成為瓶頸,可見設(shè)計(jì)還是不夠完善。
倒是6Gb/s SAS HBA的表現(xiàn)令人欣慰,而“半個(gè)”CPU內(nèi)核(每個(gè)worker對(duì)應(yīng)1個(gè)線程)就可以輕松驅(qū)動(dòng)8個(gè)SSD貢獻(xiàn)2.8GB/s的持續(xù)帶寬,也從一個(gè)側(cè)面印證了以E5-2690為代表的新一代x86 CPU的I/O能力之強(qiáng)。
單個(gè)520 SSD 4KB隨機(jī)讀訪問,響應(yīng)時(shí)間隨隊(duì)列深度變化的情況
我們還測(cè)試了兩種情況下,單個(gè)520 SSD進(jìn)行隨機(jī)讀訪問測(cè)試的響應(yīng)時(shí)間。在隊(duì)列深度低于64的時(shí)候,C600集成的3Gb/s SAS的響應(yīng)時(shí)間是LSI 6Gb/s SAS HBA的1.5至2倍,隨后上升至約3倍到5倍。這可以部分反映出PCIe直連CPU在縮短延遲上的優(yōu)越性,雖然還是ms級(jí)的水平,但對(duì)于高性能的SSD而言,差別還是較明顯的。當(dāng)然,如果主要配合硬盤驅(qū)動(dòng)器使用,那C600集成SAS相對(duì)較長(zhǎng)的延遲,也就不顯什么了。 #p#page_title#e#
PCIe 3.0 + 6Gb SAS的小驚喜
C600集成的SAS不給力,不代表集成的就沒好貨;前面說到現(xiàn)在市面上很難找到PCIe 3.0的擴(kuò)展卡,但英特爾公司送測(cè)的Intel Server System R2000系統(tǒng)就帶了一個(gè)。
Intel Server Board S2600GZ主板上,比PCIe 3.0 x24的“超級(jí)插槽”離CPU更近的,是這個(gè)不起眼的PCIe 3.0 x8 SAS擴(kuò)展模塊專用插槽
這款型號(hào)為Intel RMS25CB080的集成RAID模塊,核心是一顆LSISAS2208芯片——最早支持PCIe 3.0標(biāo)準(zhǔn)的6Gb/s SAS RoC(RAID on Chip,片上RAID),SAS端口數(shù)量也是x8,因此帶有2個(gè)SFF-8087內(nèi)部x4連接器。
Intel RMS25CB080集成RAID模塊,黑色散熱片上方是連接緩存?zhèn)浞菰O(shè)備(如BBU,也可是閃存/電容組合)的連接器
背面的PCIe 3.0 x8 SAS擴(kuò)展模塊連接器和RoC閃存
除去散熱片后的LSISAS2208和1GB DDR3 1033MHz嵌入式內(nèi)存
支持PCIe 3.0的芯片——LSISAS2208雙核RoC特寫
雖然支持PCIe 3.0 x8,但是我們手頭的設(shè)備實(shí)在挑戰(zhàn)不了8GB/s的存儲(chǔ)I/O,而且Intel的資料也顯示LSISAS2208能支持到3000MB/s。在用2個(gè)520 SSD組成RAID 0的簡(jiǎn)單測(cè)試中,RMS25CB080集成RAID模塊順序讀寫都能達(dá)到差不多兩倍于單個(gè)520 SSD的水平,相當(dāng)令人滿意。
順序讀在數(shù)據(jù)塊尺寸為128KB至512KB時(shí)較失水準(zhǔn),寫入則很穩(wěn)定,高度接近1000MB/s