Hyper-V Hypervisor Root Virtual Processor % Total Run Time: The amount
used by just the Hyper-V host OS.
Hyper-V Hypervisor Virtual Processor % Total Run Time: The amount of
processor used by each virtual processor for each virtual machine. There is a value
for each virtual processor, which means that if a virtual machine has eight virtual
processors, it will have eight values.
If you see overall that the logical processors are consistently over 90 percent busy,
then this would show overall that the host is too overloaded. You can look at what is
using the processor by looking at the Root Virtual Processor (if it’s the Hyper-V host
using it) and Virtual Processor counters for each virtual machine (if it’s a specific
virtual machine). If the Virtual Processor counter for each virtual processor for a
specific virtual machine shows high utilization and not the overall host, then it’s
simply a specific virtual machine that is overloaded. In this case, the virtual machine
likely needs additional virtual processors added, as opposed to the host being
overcommitted in terms of resources.
For the memory resource, there are two pieces. First, has the virtual machine been
allocated enough memory? That can easily be seen by Hyper-V Manager, which shows
the memory status (also visible through the Hyper-V Dynamic Memory VM – Current
Pressure performance counter). If the memory is too low, additional memory can be
added through means such as Dynamic Memory, but this assumes that the host has
enough memory to even allocate. Looking at Memory – Available MBytes shows the
available memory on the host, but to check the amount of memory that can be
allocated to virtual machines, look at Hyper-V Dynamic Memory Balancer – Available
Memory, which shows memory available over the complete system or for each NUMA
node (if NUMA spanning is disabled).
By default, Hyper-V enables NUMA spanning, which allows a virtual machine to be
allocated memory across the boundary of the NUMA node of the processor cores being
used. While allowing more virtual machines to run, NUMA spanning may also lead to
an overall decrease in performance, because using memory outside the NUMA node of
the processor is more “expensive” in performance terms. If you disable NUMA
spanning (in the Hyper-V settings, select NUMA Spanning and uncheck Allow Virtual
Machines To Span Physical NUMA Nodes), then a virtual machine cannot be allocated
memory from remote NUMA nodes and would be limited to using memory on its local
NUMA node.
If you disable NUMA spanning, and then if you look at the performance counter
Hyper-V Dynamic Memory Balancer – Available Memory, you will see multiple
values, one for each NUMA node. If you have NUMA spanning turned on, you see only
a single counter, System Balancer.
Potentially, more memory may be needed in the host if the available memory is low
and you are seeing high memory demand from virtual machines.
The overall number of network bytes for each network adapter can be seen by looking