您現(xiàn)在的位置:首頁 >關(guān)于我們 >行業(yè)新聞 >VMware架構(gòu)下虛擬機的性能監(jiān)控技術(shù)

VMware架構(gòu)下虛擬機的性能監(jiān)控技術(shù)

時間:2011年2月22日
虛擬環(huán)境下,傳統(tǒng)基于硬件的性能監(jiān)控代理端不能提供準確的結(jié)果,甚至還會影響到整體性能。好在VMware架構(gòu)下可以采用其它方式來獲取關(guān)于整個架構(gòu)的詳細信息。

  從操作的角度出發(fā),對性能和其它數(shù)據(jù)的監(jiān)控是非常重要的。多數(shù)客戶借助硬件及性能監(jiān)控代理端實現(xiàn)對硬件和服務(wù)器服務(wù)器租用健康狀況的實時檢查。

  盡管硬件代理端可以監(jiān)控ESX宿主機的狀態(tài),卻無法保證虛擬機的健康。因為虛擬機硬件完全是基于物理平臺基礎(chǔ)上的。另外多數(shù)代理需要跟特殊的芯片通訊,而虛擬機內(nèi)沒有這樣的芯片,所以使用硬件代理通常會影響虛擬機性能。

  硬件客戶端最佳實踐

  不要在虛擬機安裝硬件代理程序,這會導(dǎo)致顯著的性能問題。而在決定是否需要購買新的ESX主機以及如何在ESX宿主機之間做好負載均衡等問題時,性能監(jiān)控結(jié)果成為極其重要的參考。雖然在ESX主機間的負載均衡可以自動進行,絕大多數(shù)的跨主機負載均衡還是手工完成的,畢竟決定是否需要在宿主機之間遷移虛機的因素有很多方面。

  也許有人會提出DRS(Dynamic Resource Scheduling)功能可以實現(xiàn)所有宿主機之間的負載均衡,但是DRS實際上只在CPU發(fā)生爭用的時候啟動遷移。如果您的環(huán)境中從不發(fā)生CPU爭用,不管DRS如何設(shè)置,依然需要依靠手動來平衡虛擬機負載。

  首先一點要理解的是向宿主機添加額外的虛機將影響到整個ESX主機的性能,有時影響很小,而某些情況下會有顯著影響。第二點是了解性能監(jiān)控工具在虛擬機內(nèi)是如何運行的。例如Windows系統(tǒng)中它通過保留一個計數(shù)器,遇到空閑周期時計數(shù)增加一位,最后從整個內(nèi)部CPU時鐘周期內(nèi)減去相應(yīng)的時間片數(shù)量。

  由于虛擬機在空閑時處于休眠狀態(tài),所以這種計算是非常不準確的,資源占用率結(jié)果會比實際值偏高。而且通常虛擬機數(shù)量要比CPU個數(shù)或核心數(shù)量多,導(dǎo)致它們之間需要共享CPU周期。在虛機數(shù)量增多時,每臺虛機獲得的CPU時間片就會變短。

  這樣,在兩次使用CPU之間的間隔時間越來越長,也導(dǎo)致了更長的CPU周期。而監(jiān)控工具是基于CPU周期來計算性能和時間的,收集的數(shù)據(jù)就產(chǎn)生了很大的偏差。當(dāng)我們希望可以把系統(tǒng)調(diào)整到期望狀態(tài)時,就要借助通過VMware vCenter或其它性能管理工具獲取的多種基本數(shù)據(jù)集進行。

  在得到相應(yīng)的基數(shù)后,內(nèi)部的虛擬機性能工具可以決定是否性能受到了影響。不過它提供的并不是絕對數(shù)字,而是基于基數(shù)上的改變率。例如,假設(shè)從虛擬機內(nèi)獲得的CPU占用率基數(shù)大約在20%,當(dāng)突然顯示40%的時候,我們可以知道在原有基礎(chǔ)上發(fā)生了2倍的變化。這并不代表原始值是20%,它可能是某一個具體數(shù)字。

  而且,即使顯示出該虛擬機的CPU占用率超出一倍,對物理服務(wù)器的占用率也不是翻倍關(guān)系。因此,如果想獲得關(guān)于虛擬機的性能數(shù)字,需要一些不在虛擬機內(nèi)部運行的軟件做參考。VMware vCenter或第三方工具,如Vizioncore vFoglight、基于命令行的esxtop或者是遠程CLI的resxtop,都是運行于虛擬機之外的可用于衡量虛擬機和ESX主機性能的工具。此外,它們都可以提供ESX宿主機情況的整體視圖。

  關(guān)鍵是要意識到當(dāng)通過vCenter或其它某個工具觀察到ESX主機的占用率長期位于80%以上的時候,需要增加新的ESX主機還要把原主機上的負載進行遷移。同樣的機制也適用于需要衡量網(wǎng)絡(luò)和存儲帶寬資源的時候。

  通過vMotion技術(shù)可以在不停機的情況下跨宿主機進行虛擬機遷移,因此ESX主機的負載均衡可以每天進行,甚至是在一天內(nèi)分時段進行。雖然過程可以是自動的,手動調(diào)配vMotion和Storage vMotion還是可以對系統(tǒng)和容量有更好的了解,以備在需要時重新進行平衡。

  例如,如果ESX主機的CPU占用率達到95%,需要使用工具找出引發(fā)該問題的虛擬機;接下來,需要通過vMotion把該虛機遷移到空閑的或壓力較小的主機上。如果這種遷移總是發(fā)生,最好可以把這臺虛擬機固定到某臺壓力較小的主機上。這也是建議配置N+1模式主機原因。

  增加虛擬機部署會增加CPU占用率。在下一章中對部署方式有詳細的介紹,不過我們建議創(chuàng)建一個可以訪問所有LUN的調(diào)度服務(wù)器服務(wù)器租用。該服務(wù)器可以用于在部署新虛機時先進行調(diào)試,直到該虛機滿足可以真實的生產(chǎn)環(huán)境服務(wù)器上運行所需的前提條件后,再通過vMotion遷移。

  例如,有個用戶希望可以衡量在現(xiàn)有的網(wǎng)絡(luò)配置情況下,加入ESX主機后各個虛擬機的性能情況。為達到該目的,在解釋了CPU時間周期的問題后,我們規(guī)劃出了具體執(zhí)行方案。

  這里使用了兩個工具:VMware vCenter和esxtop,可以通過服務(wù)器控制臺運行或借助vMA以批處理方式(esxtop -b)。用于性能問題分析時,esxtop是最佳的工具,不過它會產(chǎn)生大量的數(shù)據(jù)用于稍后繪制圖表。vCenter每隔五分鐘或更長時間取一個平均值用于數(shù)據(jù)存檔,它的實時數(shù)據(jù)收集間隔為20秒。Esxtop使用的是實時數(shù)據(jù)而不是平均數(shù),采集間隔默認為5秒鐘,最小間隔可以設(shè)為2秒。

  該方案通過兩個工具衡量每臺虛擬機在運行各自應(yīng)用時的性能。ESX主機的性能實際上很大強度上受到每臺虛擬機內(nèi)的應(yīng)用影響。意識到這點很重要,在討論性能問題時不要只盯著某臺虛擬機,而是對整個宿主機進行通盤考慮。

  這也是為什么VMware通常不允許私自發(fā)布性能數(shù)據(jù),每次結(jié)果根據(jù)負載的不同差異很大。最好的辦法是用自己的應(yīng)用來親自測試和分析,因為其它公司的虛擬應(yīng)用測試結(jié)果對另一家公司而言毫無意義。即使是應(yīng)用程序相同,每個環(huán)境的負載情況也會千差萬別。

  如果您依然希望可以橫向?qū)Ρ菶SX主機性能,VMware開發(fā)了用于多臺宿主機和hypervisor平臺間對比的通用負載模型VMmark。不幸的是,VMmark還沒有成為標準。

Copyright© 2004-2020 河南海騰電子技術(shù)有限公司 版權(quán)所有   經(jīng)營性ICP/ISP證 備案號:B1-20180452   豫公網(wǎng)安備 41019702002018號    電子營業(yè)執(zhí)照