How to monitor CPU usage and performance on a Hyper-V server with several VM's

First, you have to remember that in Hyper-V that the "host" is called a parent partition and it really just like a virtualized guest with special permissions and roles. Just like any other child/guest, when you open up Task Manager, you can not see the CPU usage of the other children on the server.

Ben Armstrong has a good explanation of this here: http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/28/hyper-v-virtual-machine-cpu-usage-and-task-manager.aspx

To summarize his post, you need to check three things to get an accurate picture of CPU utilization:

  1. View the CPU usage on each guest - this is available through Hyper-V Manager or Performance Monitor.

  2. CPU usage due to context switching - this is the perfmon counter called % Hypervisor Run Time under Hyper-V Hypervisor Virtual Processor

  3. Child partition worker process - vmwp.exe running on the parent partition (1 per child). This handles Hyper-V operations like saving state.