如何在具有多个 VM 的 Hyper-V 服务器上监控 CPU 使用率和性能

Bjø*_*ørn 15 virtualization windows-server-2008 hyper-v cpu-usage

我有一台运行 Windows 2008 64 位 Hyper-V 的服务器,具有 8 演出内存和 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 使用情况。

Dou*_*xem 15

首先,您必须记住,在 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 虚拟处理器下名为% Hypervisor Run Time的性能计数器

  3. 子分区工作进程 -在父分区上运行的vmwp.exe(每个子分区 1 个)。这会处理 Hyper-V 操作,例如保存状态。