Linux

KVM 虛擬化 Host 和 Guest 資源使用率的關係

  • April 4, 2014

我有一個 8 核和 32GB RAM 的 KVM 虛擬化主機。該機器用於託管用於評估軟體、配置等的 VM。通常有 2-4 個 VM 同時執行。主機執行的是 Ubuntu Server 12.04 LTS。這是一個只安裝了 KVM 的簡單安裝。通常,此主機上的來賓 VM 分配有 2 個核心和 4GB 的 RAM。所有來賓都執行 Ubuntu 12.04 伺服器。

最近,我開始在分配了 2 個核心和 8GB RAM 的 VM 上測試一個軟體(CrashPlan PROe Server)。CrashPlan PROe 是一個 Java 應用程序。我從生產伺服器導入了一個配置來模擬我們的實時環境。

在正常負載下,我觀察到使用 top(在客戶機上)的 CPU 使用率很高。我還在主機上觀察到一個 KVM 程序表現出相似的 CPU 負載。在 KVM 主機上,每個 VM 似乎有一個 KVM 程序。

• 對於每個KVM 來賓將有一個主機KVM 程序,我是否正確?

• 將CPU 資源分配給虛擬機時——虛擬機是否直接定址這些核心?或者主機是否只是向來賓呈現所述核心的一些虛擬表示?

• 在我的特定情況下,在具有 8 個核心和 32GB RAM 的機器上僅分配了 2 個核心和 8GB RAM 的來賓如何導致如此高的 CPU 使用率(在單個 KVM 程序上超過 80%)主人?

KVM 為您分配給來賓的每個虛擬 CPU 啟動並執行一個程序。雙核 VM 意味著兩個主機端執行緒。

來賓調度一個 vcpu,命令被傳遞給主機並在適當的執行緒中執行。

眾所周知,Java 資源匱乏。80% 還不錯,因為這只是一個主機核心。即兩個完全調度的主機核心將顯示 200%

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