ESXi虛擬機的 %steal 時間 與 CPU 就緒的關係

ESXi虛擬機的 %steal 時間 與 CPU 就緒的關係


概念解釋

%steal
在top輸出中,
steal時間表示虛擬CPU等待真實CPU的時間。
這通常發生在虛擬化環境中,
當虛擬機嘗試在其物理主機上運行CPU密集型任務時,
可能會出現steal時間增加的情況。
這表示虛擬機無法立即獲得所需的CPU資源,
需要等待其他虛擬機或系統進程釋放CPU資源之後才能運行。
如果steal時間持續較高,可能會影響虛擬機的性能

ESXi CPU就緒時間
CPU就緒時間是指ESXi服務器上虛擬機所需的CPU資源可以立即可用的時間。
在ESXi主機上運行的虛擬機可能需要等待獲取CPU資源,這會導致CPU就緒時間增加。
當CPU就緒時間較高時,表示虛擬機無法立即獲得所需的CPU資源,
可能會影響虛擬機的性能。
通過監視CPU就緒時間,可以幫助管理員識別並解決ESXi主機上CPU資源分配和性能問題。

一個簡單的監控

image


虛擬機內部的情況

06時10分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
06時20分01秒     all      0.72      0.00      0.50      0.97      0.00     97.81
06時30分01秒     all     11.24      0.00      1.26      0.63      0.00     86.86
06時40分01秒     all     14.95      0.00      1.51      2.94      0.00     80.60
06時50分01秒     all      9.71      0.00      1.08      0.03      0.00     89.18
07時00分01秒     all      9.59      0.00      1.02      0.00      0.00     89.40
07時10分01秒     all      9.15      0.00      1.19      0.00      0.00     89.66
07時20分01秒     all      9.36      0.04      1.42      0.02      0.00     89.16
07時30分01秒     all     10.01      0.00      1.16      0.00      0.00     88.83
07時40分01秒     all      9.14      0.00      1.20      0.00      0.00     89.66
07時50分01秒     all      9.19      0.00      1.17      0.00      0.00     89.64
平均時間:     all      9.31      0.00      1.15      0.46      0.00     89.08

發現問題

根據 vCenter 監控出來的CPU就緒時間
明顯看到有大約 2.5% 的CPU時間其實屬於就緒時間. 
但是看 sar 以及 top 都沒有展示出這個時間來

所以感覺通過物理機的監控 能夠看到 %steal 非常不準確. 
可能宿主機會故意的減少這個時間來避免服務基線的下降

關於 ESXi CPU就緒比率的計算

要在 vCenter 性能圖表中的 CPU 就緒總量值與
esxtop中顯示的 CPU 就緒百分比值之間進行轉換,必須使用公式。

該公式要求您瞭解性能圖表的默認更新間隔。每個圖表的默認更新間隔如下:

實時:20 秒
過去一天:5 分鐘(300 秒)
過去一週:30 分鐘(1800 秒)
過去一個月:2 小時(7200 秒)
過去一年:1 天(86400 秒)
CPU 就緒百分比

要根據 CPU 就緒總量值計算 CPU 就緒百分比,請使用以下公式:
(CPU 總量值 /(<以秒爲單位的圖表默認更新間隔> * 1000))* 100 = CPU 就緒百分比
例如:

vCenter 中虛擬機的實時統計信息可能具有 1000 的平均 CPU 就緒總量值。
使用相應的值按照公式求出 CPU 就緒百分比。
(1000 /(20 秒 * 1000))* 100 = 5% CPU 就緒

CPU 就緒總量值
要將 CPU 就緒百分比轉換爲 CPU 就緒總量值,請使用以下公式進行反向計算:
(CPU 就緒百分比 / 100)* <圖表默認更新間隔> * 1000 = CPU 總量值
例如:

如果虛擬機的 CPU 就緒百分比爲 5,則其在實時性能圖表上的 CPU 就緒總量值按如下計算:
(5 / 100) * 20 秒 * 1000 = 1000 CPU 就緒
注意:上述計算的結果是每個虛擬 CPU %RDY 時間的總和。
可以通過除以內核數大致估算出單個內核就緒時間。
但是,參考 vCPU 衡量指標本身會更準確。默認情況下,僅實時收集 vCPU 衡量指標。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章