在大量使用的 VM 主機上的 VM 的 CPU 消耗情況如何?
我知道我可以對此進行測試,但我現在沒有時間設置原始測試條件來學習應該以文件形式出現的東西——而且我找不到權威形式的東西。
我認為 VM 上消耗的 CPU% 與分配給 VM 的總 CPU 相關,並且主機上的空閒 CPU 週期平均分配給主機中所有正在執行的 VM。
因此,給定主機上有 2 個 VM,其中VM1正在消耗
50%
主機 CPU 容量,而VM2正在消耗10%
主機 CPU 容量。因此40%
CPU 容量是可用的,並且平均分配給正在執行的 VM。VM1 總主機 CPU
sees
的 CPU 潛力(實際消耗的 CPU + - 或一半的備用周期)。因此VM1記錄了 CPU 消耗(實際/分配的總數 * 100 =和空閒 CPU。70%``50%``20%``71.42%``50%``70%``71.42%``28%
VM2 總主機 CPU
sees
的 CPU 潛力(實際消耗的 CPU + -或另一半的空閒週期)。因此,VM2記錄了 CPU 的消耗和空閒。30%``10%``20%``33.333%``66.666%
停止任何一個 VM 應該立即增加另一個可用的備用 CPU,這應該顯示為另一個的 CPU 消耗下降。
對或錯?如果是假的,我不明白什麼?
您在這裡使用了一些標籤,看來您正在尋找一個通用的答案。這可能是不可能的:KVM 和 Vmware 處理事情的方式不同。
在 ESXi 中,CPU 使用兩種方法分配給虛擬機:
- CPU核心數
- 原始 MHz 的限制
單個 CPU 核心最多可以使用物理核心的速度或 MHz 限制,以較低者為準。
ESXi 記錄 VM 使用的 MHz 量。如果它是多核的,它將有更多的空間。但是,單執行緒性能永遠不會超過單個物理核心的性能。
在 VM 本身內部,它會看到分配給它的盡可能多的核心,並將基於此計算性能。
看起來您對“當虛擬機超額訂閱計算時 CPU 消耗指標如何”問題感到困惑。
對於 ESXi,它是這樣工作的:
主機:
- 4 核,每個 2.9GHz
虛擬機 1 和 2:
- 分配 3 個核心,無 MHz 限制
這是 50% 的超額認購。
鑑於 VM1 正在使用其分配的資源的 50%,VMware 將報告消耗了 4350 MHz,並且 VM 中的 CPU 監視器將看到 50% 的使用率。對於使用 10% 分配資源的 VM2,VMware 將報告 870 MHz 已消耗,而 VM 將看到 10% 已使用。
簡而言之,VM 不會互相注意到。
現在針對真正過度使用的情況。添加第三個 VM,配置與其他兩個相同,並假設所有三個都嘗試使用其 CPU 分配的 50%。我們有 3 台 VM 嘗試使用 13050 MHz,但只有 1160MHz 可用。這是如何工作的,它是如何體現的?
同樣,對於 ESXi,它會降低虛擬機的時鐘頻率,以便它們使用更少的實際 CPU 週期。他們實際上將在其 8700MHz 分配中使用 3800ish MHz,因此報告的使用率為 43%。