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