IBM在KVM上運(yùn)行OLTP基準(zhǔn)測(cè)試
IBM公司已進(jìn)行的基準(zhǔn)測(cè)試可以解釋在真實(shí)世界虛擬化環(huán)境中是如何執(zhí)行事務(wù)處理的。
當(dāng)去年年底事務(wù)處理委員會(huì)(TPC)拋出TPC-VMS服務(wù)器虛擬化基準(zhǔn)測(cè)試規(guī)范時(shí),就有人抱怨該規(guī)范并不符合最終用戶的實(shí)際需求:他們把運(yùn)行了事務(wù)處理工作負(fù)載的虛擬化服務(wù)器與裸機(jī)進(jìn)行比較,并基于此給出了其開銷。
但是,IBM公司有時(shí)候是很大度的,因此它在Red Hat的KVM虛擬機(jī)管理程序上進(jìn)行了一個(gè)TPC-C測(cè)試,而不是TPC-VMS。
在基于雙插槽Xeon E5服務(wù)器上安裝KVM,IBM并沒有采取任何TPC-VMS動(dòng)作,這是刻意選擇并用于混淆物理和虛擬服務(wù)器之間比較的,從而確定虛擬化費(fèi)用。這種比較是很重要的,特別是對(duì)于諸如事務(wù)處理這樣I/O密集型的工作負(fù)載。
在二十世紀(jì)九十年代初,TPC-C在線交易處理基準(zhǔn)測(cè)試出現(xiàn)時(shí),內(nèi)存的價(jià)格是非常昂貴的,而TPC-C數(shù)據(jù)庫(kù)必須存儲(chǔ)在磁盤驅(qū)動(dòng)器上。CPU都是適度供電的,其價(jià)格也是非常昂貴的,而服務(wù)器中I/O子系統(tǒng)的負(fù)載都是相當(dāng)高的。但是,如今的雙插槽服務(wù)器都配有多個(gè)TB級(jí)主內(nèi)存,并具有大量的I/O容量,因此,TPC-C數(shù)據(jù)庫(kù)的很大一部分基本上都是在內(nèi)存中運(yùn)行。
到底是多大的一部分,無法說出具體的數(shù)字。它不是一個(gè)SAP HANA內(nèi)存駐留數(shù)據(jù)庫(kù)設(shè)置,但有了現(xiàn)代數(shù)據(jù)庫(kù)和操作系統(tǒng)中固有的緩存信息,一個(gè)運(yùn)行TPC-C測(cè)試的現(xiàn)代服務(wù)器要比二十年前本質(zhì)上的磁盤驅(qū)動(dòng)數(shù)據(jù)庫(kù)更接近于HANA實(shí)例。當(dāng)然,這里的磁盤驅(qū)動(dòng)器是用于I/O的,但那也是因?yàn)闇y(cè)試要求磁盤容量能按最終用戶的要求而擴(kuò)展。
諸如TPC-C這樣的測(cè)試推動(dòng)了多核芯片配備大內(nèi)存容量和高帶寬的發(fā)展趨勢(shì),這樣也就促使這樣的高端配置成為了業(yè)界標(biāo)配,也讓我們認(rèn)為是理所當(dāng)然的。很多人都認(rèn)為基準(zhǔn)測(cè)試是無用的,也許他們忘記了它對(duì)系統(tǒng)架構(gòu)和軟件設(shè)計(jì)的影響。但是,如果仔細(xì)觀察的話就會(huì)發(fā)現(xiàn),事實(shí)上也需要基準(zhǔn)測(cè)試來推動(dòng)實(shí)際創(chuàng)新。
當(dāng)然, ***的做法還是做好自己的測(cè)試。如果所有的數(shù)據(jù)用于數(shù)以百萬計(jì)的服務(wù)器,那么這樣一個(gè)大數(shù)據(jù)項(xiàng)目是值得這樣做的,這將是真正有趣的事情,可能也是有用的。
在藍(lán)色巨人測(cè)試運(yùn)行KVM的TPC-C設(shè)置中,專家們使用了一個(gè)配有兩個(gè)八核Xeon E5-2690處理器、主頻達(dá)到2.9GHz的System x3650 M4服務(wù)器。對(duì)于這臺(tái)機(jī)器,IBM增加了768GB的主內(nèi)存和四個(gè)Qlogic 8Gb/秒光纖通道適配器,連接九個(gè)DS3524磁盤陣列和一個(gè)DS3512磁盤陣列,其中共有44個(gè)硬盤驅(qū)動(dòng)器和72 個(gè)SSD,共計(jì)總?cè)萘?0.3TB。
這臺(tái)特殊的服務(wù)器運(yùn)行了Red Hat企業(yè)版Linux 6.4、IBM公司的DB2 9.7關(guān)系型數(shù)據(jù)庫(kù)以及Red Hat的KVM虛擬機(jī)管理程序,它能夠支持1,040,400個(gè)用戶,并以每分鐘1,320,082次處理吞吐量的速度處理新命令。(即使另外有其他四個(gè)必須運(yùn)行、只使用半數(shù)不到CPU資源的工作負(fù)載,TPC-C測(cè)試的新命令部分還是計(jì)算在正式結(jié)果中。)
IBM去年夏天Flex x240節(jié)點(diǎn)上運(yùn)行測(cè)試,這與在System x3650 M4上測(cè)試KVM幾乎完全相同。
這個(gè)Flex x240服務(wù)器配有兩個(gè)主頻為2.9GHz的Xeon E5-2690型處理器、相同的768GB主內(nèi)存、兩個(gè)8Gb/秒光纖通道卡,連接一組DS35XX磁盤陣列。IBM有三個(gè)DS3512磁盤,配有24個(gè)磁盤和112個(gè)固態(tài)硬盤,它支持1,196,160個(gè)用戶,并以每分鐘1,503,544次處理的速度執(zhí)行新命令,它運(yùn)行Red Hat 企業(yè)版Linux 6.2和DB2 9.7。
與上述的System x3650 M4虛擬化相比,這臺(tái)Flex x240節(jié)點(diǎn)的固態(tài)硬盤略重,磁盤驅(qū)動(dòng)器略輕。我們假定,兩臺(tái)服務(wù)器上的磁盤不是性能瓶頸,并不是性能差別的實(shí)質(zhì)性原因(當(dāng)然,你應(yīng)當(dāng)擁有足夠的磁盤和主內(nèi)存來驅(qū)動(dòng)CPU),并假定與系統(tǒng)相連的這個(gè)磁盤和固態(tài)硬盤的總?cè)萘窟_(dá)到了TPC-C測(cè)試所要求驅(qū)動(dòng)更多用戶時(shí)的容量限制,那么你可能會(huì)誤認(rèn)為Flex x240服務(wù)器比System x3650 M4支持更多用戶數(shù)量,是由于它運(yùn)行裸機(jī)的原因。當(dāng)然,你還必須假定,RHEL 6.2和6.4之間所造成的性能差異是相當(dāng)小的。
如果相信這一切假定和假設(shè),那么KVM在單位時(shí)間命令處理次數(shù)上的開銷是12%,而如果你看看用戶,這個(gè)數(shù)字大約是13%左右。
如果像IBM公司只是測(cè)試裸機(jī),并在完全相同的服務(wù)器(使用VMware的ESXi、Red Hat的KVM以及微軟公司的Hyper-V管理程序)上運(yùn)行相同的工作負(fù)載,這一切就值得好好玩味一番了。但同樣,這也太容易了,這很容易讓公司得出錯(cuò)誤的比較結(jié)果,從而做出錯(cuò)誤的采購(gòu)決策。
TPC-VMS測(cè)試說明了目前TPC測(cè)試的三個(gè)副本:較舊的TPC-C OLTP基準(zhǔn)測(cè)試(模擬倉(cāng)庫(kù)操作)、TPC-E在線股票經(jīng)紀(jì)基準(zhǔn)測(cè)試、TPC-H數(shù)據(jù)倉(cāng)庫(kù)測(cè)試,以及它在服務(wù)器的單一管理程序?qū)嵗系腡PC-DS決策支持/大數(shù)據(jù)測(cè)試。
順便說一句,還沒有人運(yùn)行過TPC-VMS測(cè)試,IT供應(yīng)商可能會(huì)開始重復(fù)IBM公司剛剛完成的事情,并試圖讓人們看到虛擬化開銷。他們很可能會(huì)有所發(fā)現(xiàn),或者坦白說他們不會(huì)得到什么回報(bào)。
配置和管理上的靈活性是值得付出一堆CPU周期資源的,如果不是這樣的話,Xen、Hyper-V以及KVM都不會(huì)出現(xiàn)。