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