Was this page helpful?

Overcommitting with KVM

    所謂 Overcommitting 就是指 KVM hypervisor 可以支援超過實體 CPU & Memory 數量的使用,例如機器是 qual-core CPU,所有 guest 可以分配的 vCPU 個數可以超過 4 vCPU,RAM 也是一樣,不過,當你的硬體資源很有限,必須 Overcommitting 時,請務必先閱讀此篇,否則您的系統可能會呈現不穩定或效能過低狀況。

    Tip: Xen hypervisor 是不支援 CPU Overcommitting。

    此篇是參考 RedHat 官方手冊所撰寫。
    http://www.redhat.com/docs/en-US/Red..._with_KVM.html

    Overcommitting virtualized CPU

    1. 當所有 guest 所分配的 vCPU 超過實體 CPU 數量時,若 CPU負載接近 100% 時,可能會引起系統不穩定。
    2. 最佳的超量使用 vCPU 是每一個 guest 只分配一個 vCPU,Linux 排程可以有效的協助作負載均衡,即使負載 100% 只要 5 vCPU 中超量使用 1 vCPU,系統也是安全的。
    3. 如果是超量分配,請不要分配與實體 core 有對稱數量的 vCPU 個數,例如有 4 vCPU 的 guest 不應該使用在有 dual-core CPU 的機器上,這可能會引起系統效能降低情形。
    4. 分配 vCPU 的數量不超過實體 CPU 的個數是最適當的設定且可如預期的運作。

    Overcommitting virtualized RAM

    大部分的作業系統或應用程式沒有完全用到 100% RAM 時,可以分配 guest 超過實體 RAM 容量的記憶體。
    假如 guest 處於閒置狀態或使用負載不高時,此時它們所用的記憶體可以被放在 Swap。記憶體使用可以超過 RAM + Swap 的加總,但如果 guest 用完所有的 RAM,這將會產生問題。
    當沒有充足的 Swap 空間可以讓虛擬機器的程序用 pdflush 啟動 swapping,可能會引起檔案系統存取錯誤,以及使 guest 無法開機。

    計算 Swap 空間的公式:

    (0.5 * RAM)+ (overcommit ratio * RAM)= Recommended swap size

    實體 RAM = 8 G
    預計所有 Guest 會分配的 RAM = 2G x 5 = 10G

    0.5 * 8G + (10-8)G = 6G

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core