如何监视具有多个VM的Hyper-V服务器上的CPU使用情况和性能

我有一台运行Windows 2008 64位Hyper-V的服务器,它具有8个内存和Intel Xeon X3440 @ 2.53 Ghz,在主机系统的性能监视器上提供了8个逻辑内核。

我已经build立了三台虚拟机,全部运行Windows 2008 32位。

  1. build立服务器,运行Team City
  2. 登台服务器
  3. SQL Server,运行SQL Server 2005

我有一些设置麻烦,主机监视器始终保持响应,即使虚拟机似乎在100%的CPU工作,是非常缓慢和反应迟钝。 (我已经就此提出了一个单独的问题。)

所以这里的问题是:什么是最好的方式来监视如何实际使用物理CPU? 我问的原因是我被告知我无法可靠地使用任务pipe理器来监视虚拟机中的CPU使用情况。

首先,你必须记住,在Hyper-V中,“主机”被称为父分区,它实际上就像具有特殊权限和angular色的虚拟客户机一样。 就像任何其他子/客户一样,当您打开任务pipe理器时,您将无法看到服务器上其他子项的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-Vpipe理器或性能监视器可以查看。

  2. 上下文切换导致的CPU使用率 – 这是在Hyper-Vpipe理程序虚拟处理器下称为%Hypervisor运行时间的perfmon计数器

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

你可以 – 只要你确定你把东西放入关系。 我自己使用资源监视器。 只是你的情况是8核心,3个虚拟CPU,所以所有的虚拟100%大约37.5%物理;)

SCVMM(系统中心虚拟机pipe理器)与SCOM(系统中心操作pipe理器)一起是一个很好的工具,但是它们本身比目前的硬件要多。

您可以使用资源监视器查看VM的CPU和RAM使用情况。 作为替代,您可以使用Hyper-Vpipe理器。