Virtualization Counters

[This topic is in progress.]

The following table shows Hyper-V counters.

Counter Description Threshold Troubleshooting

Hyper-V Virtual Machine Health Summary\Health OK

Shows that the host server is running as expected.

Should be 1 at all times

Hyper-V Virtual Machine Health Summary\Health Critical

Shows the percentage of processor time that is spent in guest code. This is used to measure the total processor utilization for all virtual machines running on the host server. This value is equal to the sum of the Hyper-V Hypervisor Root Virtual Processor\% Guest RunTtime and Hyper-V Hypervisor Virtual Processor\% Guest Run Time counters.

Should remain below 65%.

If you see a value of 1, then the server is in a critical state and you should conduct a further investigation to determine the exact issue.

The following table shows Hyper-V processor counters.

Counter Description Threshold Troubleshooting

Hyper-V Hypervisor Logical Processor\% Guest Run Time

Shows the percentage of processor time that is spent in guest code. This is used to measure the total processor utilization for all virtual machines running on the host server. This value is equal to the sum of the Hyper-V Hypervisor Root Virtual Processor\% Guest RunTtime and Hyper-V Hypervisor Virtual Processor\% Guest Run Time counters.

Should remain below 65%.

There is one logical processor that that carries more load than the rest and that is LP0. This LP is where all interrupts in the system are directed and if there is too much load you can see this LP hit 100% which likely means IO is a bottleneck in the system. There are some technologies in Windows Server 2008 R2 that help reduce the load for networking and those are – VMQ, Chimney and RSS. There is no RSS support in guest virtual machines.

Hyper-V Hypervisor Logical Processor\% Hypervisor Run Time

Shows the percentage of processor time that is spent in hypervisor code. This is used to measure the total processor utilization of the hypervisor for the entire system.

Should remain below 5%.

Hyper-V Hypervisor Logical Processor\% Idle Run Time

Shows the percentage of processor time that is spent in an idle state. This is used to measure the idle processor for the entire system.

Should remain above 30%.

Hyper-V Hypervisor Logical Processor\% Total Run Time

Shows the percentage of processor time that is spent in guest and hypervisor code. This is used to measure the total processor utilization for hypervisor and all virtual machins running on the host server.

Should remain below 70%.

Hyper-V Hypervisor Virtual Processor\% Guest Run Time

Shows the percentage of virtual processor time that is spent in guest code for a specific virtual machine.

Should remain below 65%.

Hyper-V Hypervisor Virtual Processor\% Hypervisor Run Time

Shows the percentage of processor time that is spent in hypervisor code for a specific virtual machine.

Should remain below 5%

Hyper-V Hypervisor Virtual Processor\% Idle Run Time

Shows the percentage of processor time that is spent in an idle state for a specific virtual machine.

Should remain above 30%.

Hyper-V Hypervisor Virtual Processor\% Total Run Time

Shows the percentage of processor time that is spent in guest and hypervisor code for a specific virtual machine.

Should remain below 70%.

Hyper-V Hypervisor Root Virtual Processor\% Guest Run Time

Shows the percentage of time used by virtual processor in guest code. This is used to determine the processor utilization of the virtualization stack on the host server.

Should remain below 5%.

Hyper-V Hypervisor Virtual Processor\% Hypervisor Run Time

Shows the percentage of time used by the virtual processor in hypervisor code. This is used to determine the processor unitization by the hypervisor that is used by the host (i.e. not specific to any virtual machines).

Should remain below 5%.

The following table shows common Hyper-V memory counters.

Counter Description Threshold Troubleshooting

Memory\Available MBytes

Available megabytes is the amount of physical memory, in megabytes, immediately available for allocation to a process or for system use. This will give you an idea of how much memory is remaining for guests. There is a reserve of 256MBytes or 512MBytes or 2048Bytes that the root will always leave outside of guest memory. The exact amount varies depending on Hyper-V release. So if you find a time when a VM wont start it may be there are too few available bytes to satisfy the reserve.

Should be greater than 2MB.

Memory\Pages/sec

Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults. This is a measure of memory pressure since it tracks hard faults. Those are page faults that require a disk access. Usually the cause for the number to spike is when there are two few available bytes on the system and processes are competing with each other for physical RAM.

Not applicable.

Hyper-V VM Vid Partition\Physical Pages Allocated

Shows the total number of guest pages and VID pages needed to manage the virtual machine.

Not applicable.

Hyper-V VM Vid Partition\Remote Pages Allocated

On NUMA based systems, this shows if a virtual machine is spanning multiple nodes.

Not applicable.

You want to avoid this whenever possible. You can require a VM to start off a particular node by using the API at https://blogs.msdn.com/tvoellm/archive/2008/09/28/Looking-for-that-last-once-of-performance_3F00_-Then-try-affinitizing-your-VM-to-a-NUMA-node-.aspx. Another way is to stop and restart the VM and if possible Hyper-V will allocate all memory on a single NUMA node.

Hyper-V Hypervisor [ROOT] Partition\1G GPA Pages

Shows the number of 1G pages present in the GPA space of the partition. This indicates whether or not a VM is using large pages which improves overall VM performance.

Not applicable.

Large pages are only used on systems that have vTLB hardware support. See more on vTLB at https://blogs.msdn.com/tvoellm/archive/2009/04/06/why-does-my-desktop-box-slowdown-when-i-install-hyper-v.aspx.

Hyper-V Hypervisor [ROOT] Partition\2M GPA Pages

Shows the number of 2M pages present in the GPA space of the partition. This indicates whether or not a VM is using large pages which improves overall VM performance.

Not applicable.

Large pages are only used on systems that have vTLB hardware support. See more on vTLB at https://blogs.msdn.com/tvoellm/archive/2009/04/06/why-does-my-desktop-box-slowdown-when-i-install-hyper-v.aspx.

Hyper-V Hypervisor [ROOT] Partition\Deposited Pages

Shows the number of pages deposited into the partition. This indicates how much memory the hypervisor is using for managing the VM.

Not applicable.

The following table shows common Hyper-V network counters.

Counter Description Threshold Troubleshooting

Network Interface(*)\Bytes Total/sec

Indicates the rate at which the network adapter is processing data bytes. This counter includes all application and file data, in addition to protocol information such as packet headers.

For a 100-MBps network adapter, should be below 6–7 Mbps.

For a 1000-Mbps network adapter, should be below 60–70 Mbps.

Network Interface(*)\Packets Outbound Errors

Indicates the number of outbound packets that could not be transmitted because of errors.

Should be 0 at all times.

TCPv4\Connection Failures

Shows the number of times TCP connections have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition to the LISTEN state from the SYN-RCVD state.

An increasing number of failures, or a consistently increasing rate of failures, can indicate a bandwidth shortage.

TCPv6\Connection Failures

Shows the number of times TCP connections have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition to the LISTEN state from the SYN-RCVD state.

An increasing number of failures, or a consistently increasing rate of failures, can indicate a bandwidth shortage.

TCPv4\Connections Reset

Shows the number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.

An increasing number of resets or a consistently increasing rate of resets can indicate a bandwidth shortage.

Some browsers send TCP reset (RST) packets, so be cautious when using this counter to determine reset rate.

TCPv6\Connections Reset

Shows the number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.

An increasing number of resets or a consistently increasing rate of resets can indicate a bandwidth shortage.

Some browsers send TCP reset (RST) packets, so be cautious when using this counter to determine reset rate.

Hyper-V Virtual Switch\Bytes/sec

This counter represents the total number of bytes that have traversed the network adapter.

Not applicable.

Hyper-V Virtual Switch\Packets/sec

This counter represents the total number of bytes received per second by the network adapter.

Not applicable.

Hyper-V Virtual Network Adapter\Bytes/sec

This counter represents the total number of bytes per second traversing the virtual switch.

For a 100-MBps network adapter, should be below 6–7 Mbps.

For a 1000-Mbps network adapter, should be below 60–70 Mbps.

Hyper-V Virtual Network Adapter\Packets/sec

This counter represents the total number of packets per second traversing the virtual switch.

Not applicable.