VMWare vSphere - CPU性能分析與監控之就緒時間(ready time)分析

介紹
簡單描述,CPU就緒時間參數(ready time)是虛擬機想要運行,但沒法獲取CPU資源的總等待時間(準確講,爲虛擬機可以調度到物理CPU運行以前,處於read-to-run狀態的總時間)。它是是虛擬化環境下,分析虛擬系統性能的重要性能參數。本文重點介紹經過esxtop分析和定位和此參數相關的CPU性能問題。
如何獲取就緒時間參數
能夠經過esxtop和vCenter獲取此參數,但兩種方式獲取參數形式不一樣。esxtop以百分比的形式顯示此參數,如5%意味着VM在採樣間隔內花費了%5的時間來等待獲取CPU資源。vCenter用具體的時間來度量此參數,其採樣間隔爲20,000ms。此意味着,vCenter1,000ms的就緒時間,在esxtop中顯示爲5%。對於該參數的詳細介紹,可參考 ESX3 Ready Time.pdf。
在交互模式下,使用esxtop來查詢VM的CPU信息,你能夠看到%RDY的相關參數。
VMWare vSphere - CPU性能分析與監控之就緒時間(ready time)分析
esxtop有個使用技巧,在CPU顯示界面下,按r鍵,能夠按照%RDY值由大到小進行排序,能夠快速查找就緒時間異常的VM。
如何解析ready時間參數
一個最參見的問題就是,對於就緒時間,什麼狀況下可能致使問題。然而,此問題並不容易回答,本文提供一些關於可接受參數範圍的指導。Ready時間參數不該該做爲系統性能的最終測量參數,而用戶體驗和延時纔是應該考慮的因素。在某些狀況下,ready時間參數爲0,可是用戶的體驗確很是的糟糕。例如,此類問題多是因爲存儲陣列的不當配置致使的。偶爾,咱們可能也會遇到過分整合的宿主機,ready值很高,但卻能知足用戶的需求。所以,關於ready參數,沒有一個絕對的參考值。
須要注意的是,ready時間值是針對每一個vCPU的。esxtop顯示的每一個VM的ready參數值,是將其全部vCPU參數值的累加。若是某VM配置爲2個vCPU,若是其每一個vCPU的ready值爲5%,那麼此VM級的參數值爲10%。
咱們能夠將ready參數值劃分爲下列幾種狀況:
1.  %RDY == 0: 這種狀況不會發生。因爲客戶機操做系統與真實硬件之間的虛擬化層VMM的存在,任何操做狀況下,此值都不可能爲0. 可是一個健康的系統,這個值很是小,以致於終端用戶感知不到他們的業務是在虛擬化環境下運行的。
2.  0 < %RDY <= 5%: 這個是ready值的正常區間。很是小ready值意味着對用戶體驗很是小。若是系統存在性能問題,而且ready值在此區間,應爲其它問題致使。
3.  5% < %RDY <= 10%: ready值進入此區間,就很是值得你去關注了。大多數系統功能在此區間內能夠正常工做。
4.  %RDY > 10% : 儘管有些系統可以繼續知足性能指望,但此時多數狀況下須要你採起些措施來解決性能問題。
緣由及處理措施
一般有兩類問題致使太高的ready值:
主機負載太高
最多見的緣由就是在硬件能力不足的狀況下,試圖進行高負荷的工做。爲了便於理解,舉一個僅有一個物理CPU的系統。若是有兩個滿負載運轉單vCPU的VM在此係統上運行,每個都想得到整個CPU的資源;但因爲僅有有個CPU供調度運行,ESXi在調度VM時,採用平均分配的方式,那麼每一個VM僅能得到50%的物理CPU資源。結果,每一個VM都要花費50%時間來等待CPU資源。所以,在esxtop中看到的ready時間值爲50%(爲簡單考慮,此處沒有考慮ESXi自己運行對CPU資源的消耗)。
這種狀況很是容易觀察到,這時ready時間和主機CPU利用率都很是高。解決這種問題的惟一辦法就是下降系統的負載。VM遷移出高負載的主機或增長主機的CPU資源。
SMP的過分使用
ESX 2.5版本中,SMP客戶機要求在同一時刻進行協同調度(co-schedule)。對於有兩個vCPU的客戶機,在準備就緒執行時,僅有一個物理核(physical core)可供使用;此時,客戶機不能被調度直到能獲取第二個核。這無疑增長了ready時間。在ESX 3.0及後續版本中,儘管引入了鬆散的協同調度方式,即虛擬機的部分vCPU能夠先於其它的vCPU調度執行。可是,客戶機仍然要求某種程度的協同調度。所以鬆散調度不是絕對的。簡而言之,增長客戶機的vCPU的個數,會增長調度器的負荷;而且協同調度會致使ready時間的增長。所以,VMware官方建議僅給客戶機配置必要的vCPU,避免協同調度帶來的太高的ready時間和總體性能的降低。轉載至—明辰智航ide

相關文章
相關標籤/搜索