Windows-Server-2008

如何監控具有多個 VM 的 Hyper-V 伺服器上的 CPU 使用率和性能

  • February 21, 2017

我有一台執行 Windows 2008 64 位 Hyper-V 的伺服器,具有 8 GB 的 RAM 和 Intel Xeon X3440 @ 2.53 Ghz,這在主機系統的性能監視器中為我提供了 8 個邏輯核心。

我已經設置了三個虛擬機,都執行 Windows 2008 32 位。

  1. 建構伺服器,執行 Team City
  2. 登台伺服器
  3. 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 使用率:

  1. 查看每個來賓的 CPU 使用情況 - 這可通過Hyper-V 管理器或性能監視器獲得。
  2. 由於上下文切換導致的 CPU 使用率 - 這是 在 Hyper-V Hypervisor Virtual Processor 下稱為**% Hypervisor Run Time的 perfmon 計數器**
  3. 子分區工作程序 -在父分區上執行的**vmwp.exe (每個子分區 1 個)。**這會處理 Hyper-V 操作,例如保存狀態。

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