
我有 2 個虛擬機器作為來賓運行在 Ubuntu 10.04 上運行的 KVM 虛擬化平台上。一台虛擬機器是Ubuntu 10.04系統,另一台虛擬機器是Windows 7系統。根據 top 的說法,當兩台電腦完全登出時,Linux 電腦使用 1% 的 CPU,Windows 電腦使用 45-50%。 virt-manager 中的圖表似乎支持了這一點。 Win7 映像上沒有安裝任何會在背景執行的內容;它盡可能新鮮。
當 Windows 虛擬機器和 Linux 虛擬機器都已登出並處於空閒狀態時,為什麼 Windows 虛擬機器的使用量比 Linux 虛擬機器多得多?
編輯:
我從一開始就為來賓安裝了 paravirt 儲存和網路驅動程式。我不相信我還缺少任何其他驅動程序,我錯了嗎?
根據客人任務管理器的說法,確實是閒置了。 Taskman 佔用約 1% 或 2% 的來賓 CPU,但沒有其他行程佔用任何 CPU 時間。
答案1
您執行的是哪個版本的 QEMU-KVM?
我們在 0.12.3 及更低版本上看到過這個問題,但在 0.12.4 上似乎並不是什麼大問題。另外,檢查螢幕保護程式是否正在運作。如果您使用 VNC 連接,那麼它可能在那裡運行,並且 CPU 使用率不會在 VM 內部 - 它將被 KVM 進程耗盡。
答案2
我知道我的答案是在 100 年後給出的,但是:為了將來的參考,請參見這裡:
http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle
如果是這種情況,那麼解決方案如下: http://support.microsoft.com/kb/895980
它將我的 x86_64 kvm 主機上的 Win2K3 R2 來賓 CPU 使用率(當來賓空閒時)從 ~30%-40% 下降到 6%
答案3
我對KVM一無所知,但是在VMware上,如果您不在虛擬機中安裝VMware工具,則可能會發生這種情況,因此它沒有適用於虛擬化硬體的正確設備驅動程序,並且無法放置當它實際上沒有做任何事情時,它的虛擬CPU處於真正的空閒狀態,而是使用一個簡單的空閒循環(這實際上對應於CPU完全忙於自身循環)。
也許您應該在虛擬機器中安裝類似 VMware 工具的東西?
答案4
首先,不要再比較 Windows 和 Linux 或期望它們表現相同。他們是不同的。
Windows 是絕不閒置的。它運行許多後台任務,從我對 Win 7 的簡短使用經驗來看,它比 XP 執行的任務更多。有助於減輕負載的一件事是開始關閉必要的服務,例如索引服務。