每秒11,200 TPC-E?四路服務(wù)器!
“
在《「存儲極客」三步完成全閃存選型》
一文中,
我們介紹了如何
測試存儲系統(tǒng)的OLTP性能。
而具體到影響交易系統(tǒng)性能
的決定因素——
CPU、內(nèi)存還是IO子系統(tǒng)?
關(guān)于這一點(diǎn)在不同場景下
的權(quán)重也不一樣。
下面從最近的一份
TPC-E BenchMark測試結(jié)果說起。
”
由于單個交易的復(fù)雜程度不同,
TPS(每秒交易數(shù))和TPM(每分鐘交易數(shù))
只有在相同測試模型下比較才有意義
如上表,這套被測系統(tǒng)在大負(fù)載Profile下表現(xiàn)出11,200 TPS(每秒交易數(shù))的支持能力。
具體來說,就是測試了1-4個虛擬機(jī),每個虛擬機(jī)400個用戶負(fù)載,活躍數(shù)據(jù)集大約1TB。在4個VM時并發(fā)用戶數(shù)達(dá)到1600,活躍數(shù)據(jù)集總共4TB。性能擴(kuò)展方面的表現(xiàn)還是不錯的。
那么這個TPC-E成績究竟如何呢?我去TPC官方網(wǎng)站查詢了一下發(fā)布的結(jié)果。
http://www.tpc.org/tpce/results/tpce_perf_results.asp,2017年2月23日
我看到在這里公布的TPC-E測試結(jié)果中,排名第一的tpsE(也是指TPC-E的每秒交易數(shù))為11,059。前兩名TPS超過一萬的都使用了八路(8 CPU插槽)服務(wù)器,操作系統(tǒng)、數(shù)據(jù)庫為Windows+SQL Server,提交時間2015年底。
第一點(diǎn)小發(fā)現(xiàn)是,TPC-E成績并不是與CPU核心數(shù)量/總計(jì)算能力成線性關(guān)系。因?yàn)榫驮谶@個榜單中,四路服務(wù)器也能跑出超過9000的TPS。
注:本文以討論技術(shù)為目的,并不關(guān)注具體的服務(wù)器品牌型號,只看配置和測試表現(xiàn)。
TPC-E測試負(fù)載模型要點(diǎn)
引用自《TPC-E Benchmark Overview》
by TPC-PR Subcommittee,2007年2月
上表對比了TPC-E和TPC-C測試的主要區(qū)別,我們看到在數(shù)據(jù)庫表、列的數(shù)量,數(shù)據(jù)類型豐富程度,主鍵/外鍵等方面都是TPC-E更加復(fù)雜,因此它們的測試成績不能交叉對比。同樣的道理,用SwingBench等測試工具配置一個簡單交易模型,也很容易跑到更高的TPS值。
這里列出了測試可接受的場景/范圍。AQRT(平均查詢響應(yīng)時間)需要低于25ms,這個延時與存儲的IO延時不是一回事,因?yàn)橐淮尾樵儾僮髦锌赡軙瑪?shù)量不等的IO,還受應(yīng)用(數(shù)據(jù)庫)緩存命中率的影響。
關(guān)于CPU利用率80%-85%,如果超過這個值意味著CPU可能成為瓶頸,要是較低則表明壓力不夠,系統(tǒng)計(jì)算能力尚有裕量。
同樣是“堆”SSD,
DAS和全閃存陣列哪個效果好?
由于報告提交時間的原因,這兩套TCP-E測試系統(tǒng)的OS、數(shù)據(jù)庫版本,以及CPU都不是最新一代,但Xeon E7-8890 v3的144個核心和4TB內(nèi)存還是比較豪華了。而更加“變態(tài)”的是,上表中的八路服務(wù)器使用8塊RAID卡加12個JBOD擴(kuò)展柜,一共連接了104個SAS SSD(包括6組17個SSD的RAID 5)。
盡管在《存儲極客:SSD RAID能跑多快?要安全就沒性能?》一文中,我們談到過RAID卡對SSD性能發(fā)揮(主要是寫性能)的影響,不過上述平臺的整體IOPS、帶寬還是可以秒殺許多PCIe閃存配置了。
另外一款八路服務(wù)器在TPC-E測試中更進(jìn)一步,配置了15塊SAS RAID卡、15個JBOD機(jī)箱里面一共210個400GB SSD。我們肯定I/O性能對TPS的影響,但在達(dá)到一定程度之后,存儲子系統(tǒng)也許就不再是瓶頸了。
本文開頭提到的11,200 TPS測試成績并沒有提交到TPC官網(wǎng),有些測試配置可能存在不同,因此這個對比也只是給大家一個參考。其中有一點(diǎn)差別就是上面2款八路服務(wù)器都是在物理機(jī)Windows系統(tǒng)中測試的,而下面要介紹的平臺使用了虛擬機(jī)(Hyper-V)。
引用自《TPC-E testing of Microsoft SQL Server 2016 on Dell PowerEdge R830 Server and Dell SC9000 Storage》
如上圖,這套平臺的數(shù)據(jù)庫服務(wù)器為Dell PowerEdge R830,后端連接SC9000存儲陣列,存儲網(wǎng)絡(luò)由2個Brocade 6505 FC交換機(jī)構(gòu)成。萬兆以太網(wǎng)交換機(jī)型號為Dell S4048-ON,沒有看到關(guān)于客戶端服務(wù)器的描述。
具體的服務(wù)器配置,是Xeon E5-4600四路平臺中的頂配CPU——22核的4669 v4,基礎(chǔ)頻率2.2GHz,雖然單個CPU性能比Xeon E7 v3強(qiáng),但四顆的核心總數(shù)為88個。滿配1.5TB內(nèi)存也無法與八路平臺測試使用的4TB相比。
服務(wù)器上操作系統(tǒng)和數(shù)據(jù)庫也使用了微軟Windows+SQL Server平臺;SC9000存儲陣列為全閃存配置,雙控制器+2個SC420驅(qū)動器機(jī)箱,18個寫密集型SSD加12個讀密集型SSD的分層部署。
服務(wù)器2U、存儲8U,加上所有交換機(jī)也才14U的高度,比前面提到十幾個JBOD占滿整個機(jī)柜在空間上要節(jié)省不少,耗電也是一樣。
通常意義上,如果只是單純實(shí)現(xiàn)單臺服務(wù)器的存儲性能最大化,不通過存儲網(wǎng)絡(luò)直連SSD是最好的辦法。除了無法與其它服務(wù)器共享之外,還有故障點(diǎn)增加的問題,雖然驅(qū)動器配置了RAID,但任何一塊RAID卡或者JBOD故障都會導(dǎo)致部分?jǐn)?shù)據(jù)無法訪問。在如此規(guī)模的DAS環(huán)境添加服務(wù)器實(shí)現(xiàn)共享存儲的高可用也不太現(xiàn)實(shí)。
相比之下,外部存儲陣列中的30個SSD在這里并沒有表現(xiàn)出性能不足。我覺得首先是一部分?jǐn)?shù)據(jù)請求在應(yīng)用(數(shù)據(jù)庫)緩存命中了;其次貼近實(shí)際應(yīng)用的TPC測試中每個交易所包含的操作,一部分瓶頸并不在存儲(SSD/磁盤)上。在這種情況下,全閃存陣列顯得更加均衡——還具備高可用性,從服務(wù)器上的HBA卡到光纖交換機(jī),再到控制器都是雙份冗余的。如果想進(jìn)一步規(guī)避服務(wù)器的單點(diǎn)故障,增加節(jié)點(diǎn)配置共享存儲的高可用集群也都是成熟方案。
如果應(yīng)用確實(shí)需要極致的存儲IOPS或者帶寬性能,不太在乎成本,同時想兼顧高可用以及在服務(wù)器之間的共享連接能力,其實(shí)還有一種選擇——EMC DSSD RACK-SCALE 閃存系統(tǒng)。號稱超過100GB/s帶寬和超過1000萬IOPS(實(shí)測讀寫混合129GB/s帶寬和1600萬IOPS,同時具備雙控制器和冗余的PCIe主機(jī)連接,只要5U機(jī)架空間。
引用自《Modernize your SAS analytics infrastructure
to get smart, timely decisions at scale》,
A Principled Technologies report,2016年9月
SAS屬于大數(shù)據(jù)分析(BI)類應(yīng)用,上圖只是想側(cè)面證明一下DSSD的性能潛力,一臺服務(wù)器很難把它用滿,即使四路、八路服務(wù)器也是如此。
更多測試規(guī)模、性能平衡點(diǎn)分析
在Dell的這份性能報告中,還有另外兩種數(shù)據(jù)集大小的測試結(jié)果,對應(yīng)虛擬機(jī)分配的vCPU和內(nèi)存資源也不相同。
引用自《TPC-E testing of Microsoft SQL
Server 2016 on Dell PowerEdge R830
Server and Dell SC9000 Storage》
“中等工作負(fù)載”測試了1-8個虛擬機(jī)(500GB)的壓力,每虛擬機(jī)300總共2400個并發(fā)用戶,測試結(jié)果為10,967 TPS,比4個“大虛擬機(jī)”略低。
引用自《TPC-E testing of Microsoft SQL
Server 2016 on Dell PowerEdge R830
Server and Dell SC9000 Storage》
“小型工作負(fù)載”測試了1-8個虛擬機(jī)(250GB)的壓力,每虛擬機(jī)90總共720個并發(fā)用戶,測試結(jié)果為10,300 TPS。
引用自《TPC-E testing of Microsoft SQL
Server 2016 on Dell PowerEdge R830 Server
and Dell SC9000 Storage》
最后看下CPU占用率,三種數(shù)據(jù)集大小基本都達(dá)到80-85%的正常范圍。
既然總計(jì)算能力(多核)、存儲性能都不是決定TPC-E成績的唯一因素,結(jié)合不同虛擬機(jī)規(guī)模/數(shù)量的測試結(jié)果,我傾向于認(rèn)為NUMA優(yōu)化——CPU訪問內(nèi)存的效率應(yīng)該也是一個需要優(yōu)化設(shè)計(jì)的點(diǎn)。
Dell PowerEdge R830的多處理器互連方式
也屬于NUMA(非一致性內(nèi)存訪問)架構(gòu)
參考我們之前在《幾輪PK幫你優(yōu)選“真四路”!》中所講的,盡管Xeon E5-4600四路平臺在CPU QPI互連方面的能力不如Xeon E7,但如果4個虛擬機(jī)恰好跑在每個CPU插槽及其本地內(nèi)存的話,反而能達(dá)到最好的效率(Xeon E5不像E7那樣通過SMI緩沖芯片連接內(nèi)存,延時較低)。
相比之下,八路及以上平臺確實(shí)可以支持更大的內(nèi)存和數(shù)量更多的PCIe擴(kuò)展卡,但需要合適的應(yīng)用(比如SAP HANA)才能發(fā)揮出與其價格相匹配的價值。