您現(xiàn)在的位置:首頁 >關于我們 >行業(yè)新聞 >VMware架構下虛擬機的性能監(jiān)控技術
VMware架構下虛擬機的性能監(jiān)控技術
時間:2011年2月22日
虛擬環(huán)境下,傳統(tǒng)基于硬件的性能監(jiān)控代理端不能提供準確的結果,甚至還會影響到整體性能。好在VMware架構下可以采用其它方式來獲取關于整個架構的詳細信息。
從操作的角度出發(fā),對性能和其它數據的監(jiān)控是非常重要的。多數客戶借助硬件及性能監(jiān)控代理端實現(xiàn)對硬件和服務器服務器租用健康狀況的實時檢查。
盡管硬件代理端可以監(jiān)控ESX宿主機的狀態(tài),卻無法保證虛擬機的健康。因為虛擬機硬件完全是基于物理平臺基礎上的。另外多數代理需要跟特殊的芯片通訊,而虛擬機內沒有這樣的芯片,所以使用硬件代理通常會影響虛擬機性能。
硬件客戶端最佳實踐
不要在虛擬機安裝硬件代理程序,這會導致顯著的性能問題。而在決定是否需要購買新的ESX主機以及如何在ESX宿主機之間做好負載均衡等問題時,性能監(jiān)控結果成為極其重要的參考。雖然在ESX主機間的負載均衡可以自動進行,絕大多數的跨主機負載均衡還是手工完成的,畢竟決定是否需要在宿主機之間遷移虛機的因素有很多方面。
也許有人會提出DRS(Dynamic Resource Scheduling)功能可以實現(xiàn)所有宿主機之間的負載均衡,但是DRS實際上只在CPU發(fā)生爭用的時候啟動遷移。如果您的環(huán)境中從不發(fā)生CPU爭用,不管DRS如何設置,依然需要依靠手動來平衡虛擬機負載。
首先一點要理解的是向宿主機添加額外的虛機將影響到整個ESX主機的性能,有時影響很小,而某些情況下會有顯著影響。第二點是了解性能監(jiān)控工具在虛擬機內是如何運行的。例如Windows系統(tǒng)中它通過保留一個計數器,遇到空閑周期時計數增加一位,最后從整個內部CPU時鐘周期內減去相應的時間片數量。
由于虛擬機在空閑時處于休眠狀態(tài),所以這種計算是非常不準確的,資源占用率結果會比實際值偏高。而且通常虛擬機數量要比CPU個數或核心數量多,導致它們之間需要共享CPU周期。在虛機數量增多時,每臺虛機獲得的CPU時間片就會變短。
這樣,在兩次使用CPU之間的間隔時間越來越長,也導致了更長的CPU周期。而監(jiān)控工具是基于CPU周期來計算性能和時間的,收集的數據就產生了很大的偏差。當我們希望可以把系統(tǒng)調整到期望狀態(tài)時,就要借助通過VMware vCenter或其它性能管理工具獲取的多種基本數據集進行。
在得到相應的基數后,內部的虛擬機性能工具可以決定是否性能受到了影響。不過它提供的并不是絕對數字,而是基于基數上的改變率。例如,假設從虛擬機內獲得的CPU占用率基數大約在20%,當突然顯示40%的時候,我們可以知道在原有基礎上發(fā)生了2倍的變化。這并不代表原始值是20%,它可能是某一個具體數字。
而且,即使顯示出該虛擬機的CPU占用率超出一倍,對物理服務器的占用率也不是翻倍關系。因此,如果想獲得關于虛擬機的性能數字,需要一些不在虛擬機內部運行的軟件做參考。VMware vCenter或第三方工具,如Vizioncore vFoglight、基于命令行的esxtop或者是遠程CLI的resxtop,都是運行于虛擬機之外的可用于衡量虛擬機和ESX主機性能的工具。此外,它們都可以提供ESX宿主機情況的整體視圖。
關鍵是要意識到當通過vCenter或其它某個工具觀察到ESX主機的占用率長期位于80%以上的時候,需要增加新的ESX主機還要把原主機上的負載進行遷移。同樣的機制也適用于需要衡量網絡和存儲帶寬資源的時候。
通過vMotion技術可以在不停機的情況下跨宿主機進行虛擬機遷移,因此ESX主機的負載均衡可以每天進行,甚至是在一天內分時段進行。雖然過程可以是自動的,手動調配vMotion和Storage vMotion還是可以對系統(tǒng)和容量有更好的了解,以備在需要時重新進行平衡。
例如,如果ESX主機的CPU占用率達到95%,需要使用工具找出引發(fā)該問題的虛擬機;接下來,需要通過vMotion把該虛機遷移到空閑的或壓力較小的主機上。如果這種遷移總是發(fā)生,最好可以把這臺虛擬機固定到某臺壓力較小的主機上。這也是建議配置N+1模式主機原因。
增加虛擬機部署會增加CPU占用率。在下一章中對部署方式有詳細的介紹,不過我們建議創(chuàng)建一個可以訪問所有LUN的調度服務器服務器租用。該服務器可以用于在部署新虛機時先進行調試,直到該虛機滿足可以真實的生產環(huán)境服務器上運行所需的前提條件后,再通過vMotion遷移。
例如,有個用戶希望可以衡量在現(xiàn)有的網絡配置情況下,加入ESX主機后各個虛擬機的性能情況。為達到該目的,在解釋了CPU時間周期的問題后,我們規(guī)劃出了具體執(zhí)行方案。
這里使用了兩個工具:VMware vCenter和esxtop,可以通過服務器控制臺運行或借助vMA以批處理方式(esxtop -b)。用于性能問題分析時,esxtop是最佳的工具,不過它會產生大量的數據用于稍后繪制圖表。vCenter每隔五分鐘或更長時間取一個平均值用于數據存檔,它的實時數據收集間隔為20秒。Esxtop使用的是實時數據而不是平均數,采集間隔默認為5秒鐘,最小間隔可以設為2秒。
該方案通過兩個工具衡量每臺虛擬機在運行各自應用時的性能。ESX主機的性能實際上很大強度上受到每臺虛擬機內的應用影響。意識到這點很重要,在討論性能問題時不要只盯著某臺虛擬機,而是對整個宿主機進行通盤考慮。
這也是為什么VMware通常不允許私自發(fā)布性能數據,每次結果根據負載的不同差異很大。最好的辦法是用自己的應用來親自測試和分析,因為其它公司的虛擬應用測試結果對另一家公司而言毫無意義。即使是應用程序相同,每個環(huán)境的負載情況也會千差萬別。
如果您依然希望可以橫向對比ESX主機性能,VMware開發(fā)了用于多臺宿主機和hypervisor平臺間對比的通用負載模型VMmark。不幸的是,VMmark還沒有成為標準。