Kvm-Virtualization
libvirt 的“shares”元素是否考慮了 vCPU 的數量?
根據libvirt 文件:
配置為 2048 的 VM 將獲得兩倍於配置為 1024 的 VM 的 CPU 時間。
我還聽說過,具有 2 個 vCPU 的 VM 的 CPU 時間是具有 1 個 vCPU 的 VM 的兩倍。它是否正確?然後,“共享”元素是否也考慮到了這一點?
例如,這兩種情況中哪一種是正確的?
- 1 個 vCPU x 10 個份額 = 10 個 CPU 時間單位
- 2 個 vCPU x 10 個份額 = 20 個 CPU 時間單位
- 1 個 vCPU x 20 個份額 = 20 個 CPU 時間單位
- 2 個 vCPU x 20 個共享 = 40 個 CPU 時間單位
或者:
- 1 個 vCPU x 10 個份額 = 10 個 CPU 時間單位
- 2 個 vCPU x 10 個共享 = 10 個 CPU 時間單位
- 1 個 vCPU x 20 個份額 = 20 個 CPU 時間單位
- 2 個 vCPU x 20 個份額 = 20 個 CPU 時間單位
感謝您的閱讀!
“shares”可調參數是針對整個 VM 計算的,不考慮 vCPU 計數。因此,您可能希望在擴大 vCPU 數量時擴大份額價值。
請注意,這是一個相對優先級,而不是時間的絕對度量。因此,它只有在您過度使用主機 CPU 時才會真正生效,這樣來自不同來賓的 vCPU 就會相互競爭主機 CPU 時間。所以你並沒有真正給出“NNN 單位的 CPU 時間”。它的意思是,在 2 個客人都需要 CPU 時間並且沒有足夠的空閒時間來滿足兩者的期間,可用的空閒 CPU 時間將分配給與份額比例匹配的 VM。