Kvm-Virtualization

libvirt 的“shares”元素是否考慮了 vCPU 的數量?

  • May 9, 2019

根據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。

引用自:https://serverfault.com/questions/966512