Hyper-V 主機系統上的 CPU 只是處於空閒狀態,即使 VM 處於全速運轉狀態
我有一台執行 Windows 2008 64 位 Hyper-V 的伺服器,具有 8 GB 的 RAM 和 Intel Xeon X3440 @ 2.53 Ghz,這在主機系統的性能監視器中為我提供了 8 個邏輯核心。
我已經設置了三個虛擬機,都執行 Windows 2008 32 位。
- 建構伺服器,執行 Team City
- 登台伺服器
- SQL Server,執行 SQL Server 2005
這三台機器執行非常緩慢,即使主機系統幾乎不使用任何 cpu,它們也處於 100% cpu,通常低於 10%。
任何人都可以就CPU分配的最佳設置提供一些提示嗎?我應該將每台伺服器設置為有兩個核心,還是應該將此數字增加到主機上的核心總數之上?
在 Virtual Machine Reserve 和 Virtual Machine Limit 上設置什麼數字比較合適?
8 gigs 的物理 RAM 是否不足以容納 3 個 VM?
謝謝閱讀。:)
Bjørn,你擔心的不是問題。在您的情況下,您有一個管理程序和四個虛擬機。其中一個虛擬機(管理作業系統)帶有管理程序。然後,您安裝了三個虛擬機。
問問自己是否希望看到使用 CPU 時間的管理作業系統。理想情況下,您希望它為您設置的三個 VM 留出盡可能多的 CPU 時間。
這正是 Hyper-V 所做的,假設您已在所有 VM 中安裝了“VM 集成組件”。這些組件通過安裝適用於 VM 的驅動程序使 I/O 更加高效。然後,除非您的 VM 的 I/O 非常繁重,否則您的管理作業系統將坐在那裡等待您與之互動,並嘗試使用盡可能少的資源。這是一件好事。
如果您想查看來自管理程序而不是管理作業系統的實際 CPU 指標,請使用管理作業系統中的性能監視器並查找 Hyper-V 計數器。這些將告訴您有關物理 CPU 使用情況的資訊。
Doug Luxem(他似乎對此了解很多)今天在另一個執行緒上很好地回答了這個問題。所以我會偷他的文字:
首先,您必須記住,在 Hyper-V 中,“主機”被稱為父分區,它實際上就像具有特殊權限和角色的虛擬來賓。就像任何其他孩子/客人一樣,當您打開任務管理器時,您看不到伺服器上其他孩子的 CPU 使用率。
Ben Armstrong 對此有一個很好的解釋:http: //blogs.msdn.com/virtual_pc_guy/archive/2008/02/28/hyper-v-virtual-machine-cpu-usage-and-task-manager.aspx
最後,查看 VM 中的 RAM 使用情況。查看磁碟隊列長度。這些將告訴您是否需要更多 RAM。不過,聽起來,您的虛擬機只需要比主機提供的更多總 CPU。