I have a dedicated Hyper-V server setup, with 4 VMs.

Logged into one of the VM's which is running XP and with Integration Services installed.

All other VMs are idle.

Using Windows Task Manager to monitor CPU usage on both the server and the vm.

If I launch Visual Studio for example, the CPU on the VM is pegged at 100% until the app is loaded. However during this time, none of the cores on the Hyper-V server never even ripple. It's almost like nothing is happening.

How can I get/let my VM's utilize more of the host's CPU time?


Task Manager doesn't show total processor time, it only shows the root partition's processor time. Take a look at the following article for information on how to determine the aggregate / total processor usage:

See: http://blogs.msdn.com/tvoellm/archive/2009/04/23/monitoring-hyper-v-performance.aspx To Quote:


Once you have an idea of the overall system capabilities and configuration though the “Hyper-V Hypervisor” counter set you will want to monitor the processors on the system. The most important counter set to monitor is the “Hyper-V Hypervisor Logical Processor”. This counter set allows you to determine how much of the physical processor are being used. The virtual processor counter sets only show a slice of the “Hyper-V Hypervisor Logical Processor”.

Hyper-V Hypervisor Logical Processor

Hyper-V Hypervisor Root Virtual Processor

Hyper-V Hypervisor Virtual Processor


I am not sure that you have to worry in this scenario. Maybe the the guest cpu is wasting time in spinlocks. And the host is optimizing them away. From the Windows Server Performance Team Blog

However, operating system kernels and drivers use spin locks which do not block and spin until the lock is acquired, with the assumption that the lock is held for a short period. Virtualization breaks this assumption as virtual processors (VPs) are time-sliced. If a VP is preempted while holding a spin lock, other VPs may spin for a long time wasting CPU cycles.

We developed innovations in the hypervisor and Windows Server 2008 kernel to try to prevent long spin wait conditions and also to efficiently detect and handle them when they do occur...

To check this out. Try to run a program that uses the cpu for computation (with minimal memory access) and see how the host reacts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.