VM在Hyper-V上不使用100%的CPU

我有一个专用的Hyper-V服务器设置,有4个虚拟机。

login到正在运行XP并安装了Integration Services的VM之一。

所有其他虚拟机都空闲。

使用Windows任务pipe理器来监视服务器和虚拟机上的CPU使用情况。

例如,如果我启动Visual Studio,则虚拟机上的CPU将挂起100%,直到应用程序加载完毕。 但在此期间,Hyper-V服务器上的内核都不会涟漪。 几乎没有任何事情发生。

我怎样才能让虚拟机使用更多的主机CPU时间?

任务pipe理器不显示总处理器时间,它只显示根分区的处理器时间。 查看下面的文章,了解如何确定聚合/总处理器使用情况:

请参阅: http : //blogs.msdn.com/tvoellm/archive/2009/04/23/monitoring-hyper-v-performance.aspx要报价:

处理器:

一旦通过“Hyper-Vpipe理程序”计数器设置了整个系统function和configuration的概念,您将需要监视系统上的处理器。 设置要监视的最重要的计数器是“Hyper-Vpipe理程序逻辑处理器”。 此计数器集允许您确定正在使用多less物理处理器。 虚拟处理器计数器集只显示“Hyper-V虚拟机pipe理程序逻辑处理器”的一部分。

Hyper-Vpipe理程序逻辑处理器

Hyper-Vpipe理程序根虚拟处理器

Hyper-Vpipe理程序虚拟处理器

我不确定你在这种情况下不必担心。 也许客户的CPU在螺旋锁中浪费时间。 主持人正在优化他们。 从Windows Server性能团队博客

但是,操作系统内核和驱动程序使用自旋锁,在获取锁之前不会阻塞和旋转,假设锁持续一段时间。 随着虚拟处理器(VP)的时间分割,虚拟化打破了这个假设。 如果在保持自旋锁的同时VP被抢占,其他VP可能会长时间旋转而浪费CPU周期。

我们在虚拟机pipe理程序和Windows Server 2008内核中开发了一些创新function,以防止出现长时间等待的情况,并且在发生这种情况时能够有效地检测并处理它们。

检查了这一点。 尝试运行一个使用cpu进行计算的程序(使用最less的内存访问)并查看主机如何反应。