Hyper-V Logical Processors Test

A logical processor is a hardware entity, either a processor core or a hyperthread, on which the Hyper-V operating system can schedule a software thread for execution.

The metrics reported by this test enables administrators to figure out the following:

  • Which logical processor is being used excessively? Who is making more use of the CPU resources – the VMs or the hypervisor?
  • Are the logical processors able to process interrupts well? Is any logical processor experiencing a bottleneck during interrupt processing?
  • Has any processor been idle for too long a time? Does that processor receive scheduler interrupts frequently?

Target of the test : A Hyper-V / Hyper-V VDI server

Agent executing the test : An internal agent

Output of the test : One set of results for every logical processor on the Hyper-V host monitored

Configurable parameters for the test
  1. Test period - How often should the test be executed
  2. Host - The host for which the test is to be configured.
Measurements reported by the test
Measurement Description Measurement Unit Interpretation

Guest runtime

Indicates the percentage of time guest code is running on this logical processor (LP). For the Summary descriptor, it indicates the average percentage across all logical processors.

Percent

For example, if you have 2 logical processors and one VM running CPU tests you might see the value be 95% for LP(0), 0% for LP(1) and 47.5% for the Summary. From this, you can conclude which processor is being heavily used by the VMs.

Hypervisor runtime

Indicates percentage of time the Hypervisor is running on an LP. For the Summary descriptor, this measure indicates the average percentage across all LPs.

Percent

Ideally, this value should be low. Comparing the value of this measure across LPs will enable you to accurately identify the LP that is being excessively used by the hypervisor.

Idle time

Indicates the percentage of time the LP is waiting for work. For the Summary descriptor, this measure indicates the average percentage across all LPs.

Percent

Ideally, this value should be low. Comparing the value of this measure across LPs will enable you to accurately identify the LP that is the most idle.

CPU utilization

Indicates the percentage of time this LP was in use.

Percent

This is typically the sum of the Guest runtime and Hypervisor runtime measures. Comparing the value of this measure across LPs will reveal the LP that is being utilized excessively.

If the value of this measure is less than 60% consumed, then the LP usage is considered Healthy. A usage level between 60% and 89% consumed, can be considered as a warning. A value between 90% and 100% is indicative of a serious resource contention.

Context switches

Indicates the number of times per second a new Virtual Processor (VP) had been scheduled to a particular Logical Processor (LP). For the Summary descriptor, the value of this measure indicates the total number of VP to LP switches per second.

Switches/Sec

Ideal time context switches of around 1000 for a single guest running are not uncommon. This is due to the fact the VP will “Halt” and allow something else to run if it has no work to do.

Hardware interrupts

Indicates the number of hardware interrupts this LP is processing per second. For the Summary descriptor, the value of this measure is the total number of hardware interrupts per second across all LPs.

Interrupts/Sec

Hardware interrupts are delivered to the root VP’s corresponding the LP on which it was received. For example a network card will create and interrupt when a packet is received.

Inter processor interrupts received

Indicates the total number of Inter-processor interrupts (IPI) received per second of a given LP. For the Summary descriptor, this is the total number of IPIs received by all LPs.

Interrupts/Sec

IPIs are sent from one processor to another to get the processor to do memory coherency (like TLB, cache, etc.).

Inter processor interrupts sent

Indicates the number of Ips sent per second of a given LP. For the Summary descriptor, this is the total number of IPIs sent by all LPs.

Interrupts/Sec

Monitor transition cost

This is a current measure of the cost to enter the Hypervisor via an Intercept on a Logical Processor (LP). For the Summary descriptor, it is the total cost across all processors.

Number

Intercepts are like User mode to Kernel Mode context switches except that here it is from the User/Kernel Mode to the Virtual Machine Monitor (VMM) a.k.a the Hypervisor mode. The smaller this value the better. The only real use it has is to figure out the relative performance of processors.

Scheduler interrupts

Indicates the number of scheduler interrupts that occurred on this LP per second. For the Summary descriptor, the number of scheduler interrupts that occurred across all LPs will be reported as the value of this measure.

Interrupts/Sec

Scheduler interrupts are sent by the Hypervisor scheduler from one Logical Processor (LP) to another to re-evaluate their runlist. The runlist is the list of Virtual Processors (VP) waiting to run on a given LP. This is also a “wake-up” mechanism for an LP that might be sitting idle in a lower power state.