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