Virtual Processor performance monitoring
When Hyper-V is running and controlling the use of the machine CPU resources, to monitor processor utilization by the hypervisor, the Root partition, and guest machines running in child partitions, you must access the counters associated with the Hyper-V Hypervisor. These can be gathered by running a performance monitoring application on the Root partition. The Hyper-V processor usage statistics need to be used instead of the usual Processor and Processor Information performance counters available at the OS level.
There are three sets of Hyper-V Hypervisor processor utilization counters and the key to using them properly is to understand what entity each instance of the counter set represents. The following three Hyper-V processor performance counter sets are provided:
- · Hyper-V Hypervisor Logical Processor
There is one instance of HVH Logical Processor counters
available for each hardware logical processor that is present on the machine.
The instances are identified as VP 0, VP 1, …, VP n-1, where n is the number of Logical Processors available at the
hardware level. The counter set is similar to the Processor Information set
available at the OS level (which also contains an instance for each Logical
Processor). The main metrics of interest are % Total Run Time and % Guest Run
Time. In addition, the % Hypervisor Run Time counter records the amount of CPU
time, per Logical processor, consumed by the hypervisor.
- · Hyper-V Hypervisor Virtual Processor
There is one instance of the HVH Virtual Processor counter
set for each child partition Virtual Processor that is configured. The guest
machine Virtual Processor is the abstraction used in Hyper-V dispatching. The
Virtual Processor instances are identified using the format guestname: Hv VP 0, guestname: Hv VP 1, etc., up to the number of Virtual Processors
defined for each partition. The % Total Run Time and the % Guest Run Time
counters are the most important measurements available at the guest machine
Virtual Processor level.
CPU Wait Time Per Dispatch is another potentially useful
measurement indicating the amount of time a guest machine Virtual Processor is
delayed the hypervisor Dispatching queue, which comparable to the OS
Scheduler’s Ready Queue. Unfortunately, it is not clear how to interpret this
measurement. Not only are the units are undefined – although 100 nanosecond
timer units are plausible – but the counter reports values that are
inexplicably discrete.
The counter set also includes a large number of counters
that reflect the guest machine’s use of various Hyper-V virtualization services,
including the rate that various intercepts, interrupts and Hypercalls are being
processed for the guest machine. (These virtualization services are discussed
in more detail in the next section.) These are extremely interesting counters,
but be warned they are often of little use in diagnosing the bulk of
capacity-related performance problems where either (1) a guest machine is
under-provisioned with respect to access to the machine’s Logical Processors or
(2) the Hyper-V Host processor capacity is severely over-committed. This set of
counters is useful in the context of understanding what Hyper-V services the
guest machine consumes, especially if over-use of these services leads to
degraded performance. Another context where they are useful is understanding
the virtualization impact on a guest machine that is not running any OS
enlightenments.
- · Hyper-V Hypervisor Root Virtual Processor
The HVH Root Virtual Processor counter set is identical to
the metrics reported at the guest machine Virtual Processor level. Hyper-V
automatically configures a Virtual Processor instance for each Logical
Processor for use by the Root partition. The instances of these counters are
identified as Root VP 0, Root VP 1, etc., up to VP n-1.
Table 1.
Hyper-V Processor usage measurements are organized into distinct counter sets for child partitions, the Root partition, and the hypervisor.
Counter Group
|
# of instances
|
Key counters
|
HVH Logical Processor
|
# of hardware logical processors
|
|
VP 0, VP 1,
etc.
|
% Total Run
Time
|
|
% Guest Run Time
|
||
HVH Virtual Processor
|
# of guest machines X
virtual processors
|
|
guestname:
Hv VP 0, etc.
|
% Total Run Time
|
|
% Guest Run
Time
|
||
CPU Wait Time Per Dispatch
|
||
Hypercalls/sec
|
||
Total Intercepts/sec
|
||
Pending
Interrupts/sec
|
||
HVH Virtual Processor
|
# of hardware logical processors
|
|
Root VP 0,
Root VP 1, etc.
|
% Total Run
Time
|
Comments
Post a Comment