Windows-Server-2008
如何監控具有多個 VM 的 Hyper-V 伺服器上的 CPU 使用率和性能
我有一台執行 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
我在設置方面遇到了一些問題,因為主機監視器始終保持響應,即使 VM 似乎在 100% cpu 下工作並且非常緩慢且無響應。(我已經問了一個單獨的問題。)
所以這裡的問題是:監控物理 CPU 實際使用情況的最佳方法是什麼?我問的原因是我被告知我不能可靠地使用任務管理器來監控 VM 中的 CPU 使用情況。
首先,您必須記住,在 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
總結他的文章,您需要檢查三件事才能準確了解 CPU 使用率:
- 查看每個來賓的 CPU 使用情況 - 這可通過Hyper-V 管理器或性能監視器獲得。
- 由於上下文切換導致的 CPU 使用率 - 這是 在 Hyper-V Hypervisor Virtual Processor 下稱為**% Hypervisor Run Time的 perfmon 計數器**
- 子分區工作程序 -在父分區上執行的**vmwp.exe (每個子分區 1 個)。**這會處理 Hyper-V 操作,例如保存狀態。