前言
x86服務器的強大計算能力終於借助四核的普及而得到確認。
虛擬機技術中的高可用方案、實時遷移將給網管調度計算資源提供最便捷的手段。VMware的上市,將2007年定格為虛擬化技術年。
但是虛擬化技術高額的許可費用以及服務費讓中小企業難以企及(VMware培訓費高達15000美金),而微軟虛擬化技術的日漸成熟無疑是打破這個僵局的利器。對中小企業市場,微軟Hyper-V的價格優勢和Windows Server系列的普及面才是最後的制勝球。
測試簡介:
在基於Windows Server 2008的虛擬服務器上進行ERP壓力測試,通過不斷加大並發用戶數來體現系統性能極限,另外在保持高性能壓力的狀態下,進行20小時左右的長時間疲勞測試來考察虛擬虛擬系統的穩定性。建立虛擬服務器作為測試的服務端,采用浪潮PS-ERP最常用的物流功能6模塊作為測試腳本,在客戶端利用Loadrunner虛擬用戶並發並記錄系統資源占用、響應時間、通過事務數等參數。(相關說明見本站文章“微軟、浪潮工程師談ERP壓力測試”、“ERP壓力測試專題”)。
物理服務器是配置較高的星盈G129-Q企業級服務器,星盈G129-Q是高集成度的IU機架式服務器,使用兩塊Intel Xeon 5345 CPU,16G內存,存儲系統為4塊15,000轉的SAS 146G硬盤組成的硬件RAID5。虛擬服務器在系統資源調配上占用4CPU以及8G的物理內存,以次來對比之前測試過的采用同樣CPU的單路4核物理服務器的性能(見文章“浪潮PS-ERP壓力測試報告--Intel單路4核服務器”)。
評測工程師評點:
Windows Server 2008整合了Hyper-V的服務器虛擬技術,並且對外公布了Hyper-V超低價——28美元。這對中小企業嘗試甚至普及虛擬化技術是一個重大利好消息。
通過增加ERP系統並發用戶數來實現大壓力,長時間運行的疲勞測試考察虛擬系統的穩定性。結果表明,Windows Server 2008虛擬服務器的性能及穩定性都讓人滿意。
測試目的:
在基於Windows Server2008的虛擬服務器上進行ERP壓力測試,不斷加大並發用戶數來體現系統性能極限,另外在保持高性能壓力的狀態下,通過長時間運行疲勞測試以考察虛擬系統的穩定性。
測試方法:
建立虛擬服務器作為測試的服務端,采用浪潮PS-ERP最常用的物流功能6模塊作為測試腳本,在客戶端利用Loadrunner虛擬用戶並發並記錄系統資源占用、響應時間、通過事務數等參數。
測試用數據庫系統為MS SQL Server 2005,數據大小為5G。5G數據庫大約是一個中等規模企業使用浪潮PS-ERP的數據大小。
測試環境:
硬件組成 客戶機 星盈G129-Q,Intel Xeon 5335*2,4*146G SAS 15K轉/ RAID5/ 16G內存 服務器 虛擬服務器 網絡 磊科 1000M交換機 軟件組成 OS:
性能測試:
性能測試的項目我們采用了物流功能的6個模塊,開始以為虛擬機的性能相對於物理服務器會有一定的距離,所以壓力程度從較低的50並發數開始進行記錄測試。但隨後我們在測試中發現,虛擬服務器的性能表現完全可以媲美相同硬件資源的物理服務器。其最高的240並發在之前的測試中很少到達過這樣的高壓力,並且無錯誤完成測試,這令我們對虛擬服務器的性能刮目相看。
1、采購入庫單制單:
圖1 采購入庫單制單
采購入庫單制單(見圖1),從51到240並發的不同壓力下的測試結果符合邏輯線性。從平均測試結果來看,在240並發的壓力下成績也相當的不錯,對比之前的單路4核2G內存的物理服務器成績,虛擬服務器占用8G的內存起到了很好的性能提升作用。
2、客戶欠款余額查詢:
對於客戶欠款余額查詢,隨並發數的增加,平均響應時間的增長保持一定比例,隨並發壓力的增加響應時間逐漸變慢,最長響應時間在100秒左右,可以說明該功能模塊對系統沒有很難承受的壓力(見圖2)。
圖2 客戶欠款余額查詢
3、庫存輔助管理余額查詢:
圖3 庫存輔助管理余額查詢
該模塊對並發壓力增加的表現不是很敏感,並發從50—240的不斷累加,其響應時間增長很平穩,這與單路4核的響應時間很接近,在高並發如200和240的時候,測試成績甚至比物理服務器的結果要好
4、庫存入庫單記帳:
圖4 庫存入庫單記帳
庫存入庫單記帳,200並發以下的平均響應時間平均在200秒以下,240並發的響應時間卻慢了一倍,這主要是在高並發數下,該模塊在測試中完成的事務會相對變少,從而形成了最小、最高和平均響應時間差別不大的現象,在這方面看來,240並發下已經接近系統瓶頸,根據我們之前的推測,這個瓶頸存在於應用軟件系統中(見圖4)。
5、全月加權成本計算:
圖5 全月加權成本計算
全月加權成本計算平均響應時間都集中在20--60秒之間,這和物理服務器的表現基本相同,全月加權成本計算對系統造成壓力不算大。
6、銷售提貨單制單:
圖6 銷售提貨單制單
銷售提貨單制單模塊在200並發以下,表現良好,和庫存入庫單記帳模塊相類似,200並發以上的響應時間有些強差人意,不過在物理服務器上沒有測試過180以上的並發壓力,所以不好比較,總體看來,200並發以下的表現,虛擬服務器和物理服務器表現很接近(圖6)。
TPS統計:
圖8 TPS統計
虛擬服務器的平均TPS稍低於物理服務器,整體表現比較平穩,很直觀的體現這個虛擬系統的性能。在上面的性能測試項目中,可以看出虛擬服務器表現性能很強勁,把ERP壓力測試的並發壓力推到一個新的高度並順利的完成了全部的測試。給虛擬服務器上調配的4個CPU,其表現出來的性能指數基本吻合4個CPU核心的物理服務器的性能水平。
穩定性測試:
對於虛擬服務器的穩定性應該是很多人更加關心一些,因為到現在為止,市場上存在著的多種虛擬化技術,無論是VMWare、Xen還是SWsoft,其客戶使用在的虛擬機上多數運行的是一些非主要業務模塊,象備份、防毒等應用服務。這些服務對性能的需求不是很高,但對虛擬系統的穩定性有很高要求,通過熱遷移技術,理論上是可以實現系統的永不停機。
很可惜,Windows Server 2008目前的Hyper-V還沒有包含系統的熱遷移功能在內,針對關鍵應用的高可用方案在這個測試版裡也還不見蹤影。(據微軟解決方案技術經理孔文達介紹,冷\熱遷移、物理機向虛擬機遷移的功能集成在另一個產品中——System Center Virtual Machine Manager)我們只能通過長時間的運行測試軟件來簡單考察其系統穩定性了。將虛擬服務器的虛擬CPU數目設定為一個,ERP壓力測試的並發壓力設置為100的水平,然後將測試時間延長到12或者24小時。讓虛擬系統一直保持在壓力均衡的狀態下進行疲勞測試,可以想象,由於Windows的數據冗余,其運行效率會逐漸下降,各個模塊的響應時間也會越來越長。
圖9 12小時混合測試中各模塊的響應時間
在之前的ERP壓力測試中我們已經發現科目余額查詢是測試中響應最慢的一環,這是由於測試腳本沒有對科目余額查詢的運行條件進行參數化設置,則每次的余額查詢都是對所有科目數據的全時長的檢索。從上圖可以看處,混合測試的9個功能模塊大部分的響應時間在400秒以下的可接受范圍之內,但科目余額查詢的響應時間就出現的驚人的緩慢。
值得慶幸的是,即便有的功能模塊響應時間變得很長,但系統沒有依然沒有出現死鎖乃至宕機的情況,測試期間出現的一些錯誤,基本都是超時等待的錯誤提示,這在程序設置中重新定義等待時長就可以規避。虛擬服務器始終有驚無險的完成了長時間的測試項目。
總的來說,Hyper-V的虛擬服務器穩定性還是讓人滿意的。裸金屬架構的虛擬技術都直接用系統處理器執行CPU指令,而涉及不到虛擬層。也就是說,Hyper-V其實是在硬件上直接運行的虛擬系統,其中運行的虛擬服務器根本不需要主操作系統。基於裸金屬架構的虛擬服務器是直接支持對稱多處理器技術、熱插拔內存技術、冗余磁盤RAID 以及冗余電源技術等眾多的硬件特性。對系統的穩定性有很大的幫助,並使系統保持一個相當高的可用性。
發現:
在性能測試和穩定性測試的過程中,我們發現了一些有意思的現象。在任務管理器中的性能監視窗口中,無論將虛擬的CPU設置為1個或者4個,運行的測試無論是50並發還是240並發,虛擬服務器CPU的占用總是保持在一個相對很高的水平上。這個現象在之前做過的物理服務器上沒有出現過。也就是說,如果一套服務器系統,它的性能如果能夠支撐200並發的話,當測試壓力只有50的時候,其系統占用不會是在很高的位置。
這與VMware虛擬機處理性能的調度截然不同,VMware曾經公布過一個虛擬機上開展SQL2000的性能測試報告,按照該報告,VMware虛擬機的性能隨著虛擬CPU的增長而線性增長。
由此我們推測,Hyper-V在調度CPU資源時,並不是按照虛擬機的虛擬CPU數量進行調度。實際上我們測試過給同一個虛擬機分配一個虛擬CPU和四個虛擬CPU,虛擬機的性能差異很小,基本上可以視為SQL 2005對不同數量處理器支持的性能差異。Hyper-V對CPU資源的調度,使同一台物理機上的虛擬機之間可以實現動態平衡,有效利用處理器資源。但是這樣做的弊端將是虛擬機之間的隔離需要部署時很好的規劃,否則一、兩個虛擬機出現死鎖這樣的宕機,很可能危急整個物理機上虛擬機穩定性。(圖10)。
圖10 不同壓力各系統資源對照
還一個有意思的現象,我們發現上面的測試中的虛擬服務器,無論它的CPU占用率有多高,在主系統的Windows2008上始終都不會體現出來。感覺上Windows2008所使用的CPU和虛擬服務器上的CPU就象是完全隔離開的一樣。2007年我們做過的SWsoft的基於寄居架構的虛擬系統測試,虛擬系統的壓力會直接體現在主系統之上。相對應的是,分配給虛擬服務器的物理內存則可以在主系統中表現出來,分配固定內存空間應該是出於平衡性能和穩定性的一個考慮吧。
圖11 虛擬機的系統資源設置
在虛擬服務器的系統資源中,我們可以設置1、2或4個虛擬處理器,從圖10可以看出來,無論賦予虛擬服務器的處理器是1個還是4個,虛擬的處理器和物理處理器其實沒有任何影射對等關系。將物理硬件的空余處理能力按設置的百份比例劃分給虛擬服務器,並根據各個系統不同的負載大小,彈性的變更其處理計算能力,這是Hyper-V對系統性能的動態協調特性。但當服務器中裝有多個虛擬系統,如果某虛擬服務器占用的計算能力值在100%時,這仍然會大大的影響到其他系統的可用性。所以要對每個虛擬服務器進行合理的資源分配。Hyper-V對不同系統之間的資源彈性調配,可以大大提高系統的整體可用性,這也是虛擬技術最大的特點。
圖12 在主系統進行winRAR測試
當虛擬服務器正在進行壓力測試的時候,我們在Windows2008上也進行了winRAR的硬件性能測試,對照關閉虛擬服務器是進行的同樣的測試,結果有20%左右的下降,這說明了系統硬件性能的獨立存在,至少在CPU上是如此。
由於Hyper-V是屬於裸金屬架構的虛擬技術,我們推測主系統Windows2008上監視到的CPU也是基於虛擬平台之上的,或者說,with Hyper-V的Windows Server2008本身就是一個安裝在虛擬層之上的虛擬系統。
圖12 在主系統進行winRAR測試
在虛擬服務器運行的時候如果將窗口轉為全屏顯示,此時的操作完全沒有使人覺得是在操作一個虛擬系統,和平時物理系統之間的切換並沒有什麼不一樣的地方。這裡我們想到了一個有趣的比喻,在對IT業界有深遠影響的電影《黑客帝國》中,每個人不過是在一個虛擬世界中的一個虛擬的意識,沒有人想到自己是被虛擬出來的,就象Hyper-V上的Windows2003不會知道自己是被安裝在虛擬的平台上一樣,假如系統也有意識存在的話。而從系統資源的監視中看出,虛擬服務器的CPU占用率並沒有體現在2008之中,可以說在CPU使用的時間片,不同系統之間是相互隔離的,我們大膽的猜測,其實Windows2008也是一個特殊的虛擬系統,是一個能提供虛擬功能的母系統,但就連母系統也是建立在虛擬的硬件平台之上。
就象我們當第一次看到Neo離開Matrix之後還能用自己的能力對付機械章魚的時候,一樣的大跌眼睛。作為母系統的Windows Server2008有其特別的存在意義,但這不等於說明Windows Server2008的母系統象寄居架構的母系統一樣不能缺少,沒有Windows Server2008的Hyper-V也是可以獨立工作在硬件層上的。在微軟公司08年即將發布的產品名單中有一款售價為29美圓的獨立Hyper-V軟件,屆時,我們只需在Hyper-V上就可以安裝各種不同的系統了。
遺憾:
結束了對Windows Server2008虛擬系統的測試,對於其Hyper-V虛擬技術所帶來的性能及穩定性的體驗,我們感覺到了微軟公司的對虛擬化市場的擴張的野心。雖然說Hyper-V在性能以及穩定性都有不錯的表現,但也有不少的遺憾剩下來。Windows Server2008 RC1中的Hyper-V只有基本的功能,相對於VMWare或者是SWsoft,配套的功能點現在是一個都沒有,現在Hyper-V也僅僅是虛擬技術的基本體驗。其他的管理功能象熱遷移或冷遷移,無論是P2V(物理到虛擬)、V2V(虛擬到虛擬)等這些應該有的功能都沒有蹤影,也不知道那29美元的軟件組會不會包含這些功能。此前傳聞因為開發的進度沒有趕上,微軟公司包含多中管理工具的虛擬技術要在2008年中才會和大眾見面,真希望這消息只是傳聞。
圖14 幫助文檔是空的
或者因為不是正式版本,Windows Server2008中關於虛擬技術的幫助文檔都是空的。從系統之中得到的“幫助”極其有限近乎為零,也可能是對虛擬技術的功能點沒有完全確定下來,所以空著幫助文檔也不奇怪。