Because the primary purpose of a virtualization layer or Hypervisor is to create completely isolated partitions, it is often difficult to get a complete and accurate view of overall CPU utilization at the level of the host OS or from within individual guest OS’s. Fortunately, there are specific virtualization-related counters that you can use to get the information you need. If you’re running Microsoft Virtual Server 2005, you can use the “Virtual Server” Performance Monitor objects to get the information you need. In the world of Hyper-V, there’s a much broader list of objects to query. Of particular interest would be the “Hyper-V Hypervisor Virtual Processor” object, which provides a breakdown of CPU utilization per guest. Overall, most virtualization products do a very good job of processing CPU calls. If you want to see what’s going on under the hood, though, you’ll need to use specific performance monitoring counters.