Hyper-V VM Details Test
This test monitors the amount of the physical server’s resources that each guest on a Hyper-V server is taking up. Using the metrics reported by this test, administrators can determine which virtual guest is taking up most CPU, which guest is generating the most network traffic, which guest is taking up the maximum memory utilization, which guest has the maximum disk activity, etc.
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 guest operating on the monitored Hyper-V server
|
Measurement | Description | Measurement Unit | Interpretation | ||||||
---|---|---|---|---|---|---|---|---|---|
Is VM powered on? : |
Whether the virtual machine is Hyper-V server host or not. |
|
While the test reports a wide variety of other metrics too for virtual machines that are alive, only the Powered on status is indicated for virtual machines that are currently not available. If this measure reports the value On, it indicates that the guest is up and running. The value Off could indicate that the guest has been powered-off; it could also indicate that the guest has moved to a different Hyper-V server. The numeric values that correspond to each of the powered-on states discussed above are listed in the table below:
Note: By default, this measure reports the values On or Off to indicate the status of a VM. The graph of this measure however, represents the status of a VM using the numeric equivalents - 0 or 1. |
||||||
Virtual CPU allocated to VM |
Indicates the number of processors currently present in this VM. |
Number |
All execution in the root and child partitions (where guest VMs run) happens on Virtual Processors (VPs). At a minimum, you will see one VP for each Logical Processor (LP). These account for the root VPs. You will then see one for each VP you have configured to a guest. Therefore, if you have an 8LP system with 1 guest running with 2 VPs, the count here will be 10. |
||||||
Virtual CPU Utilization of VM |
Indicates the percentage of time spent by the virtual processor assigned to this VM in guest and hypervisor code. |
Percent |
This measure serves as an effective indicator of how resource-intensive a particular VM is on a specific Hyper-V server. |
||||||
Virtual machine runtime |
Indicates the percentage of time spent by the virtual processor in guest code. |
Percent |
Comparing the value of the Virtual machine runtime and Hypervisor runtime measures for every VM will reveal where the virtual processors of the VM have spent more time – in processing guest code or in processing hypervisor code? |
||||||
Hypervisor runtime |
Indicates the percentage of time the virtual processor spend in hypervisor code. |
Percent |
|||||||
Memory allocated to VM |
Indicates the amount of physical memory currently allocated to this VM. |
MB |
|
||||||
Data transmitted by VM |
Indicates the number of bytes per second sent over the network adapters supported by this VM. |
Mbps |
|
||||||
Data received by VM |
Indicates the number of bytes per second sent over the network adapters supported by this VM. |
Mbps |
|
||||||
Data dropped by VM |
Indicates the number of bytes dropped on the network adapter since the last measurement period. |
MB |
Ideally, this value should be very low. A high value could be indicative of a network bottleneck. |
||||||
Disk reads by VM |
Indicates the number of bytes read per second from the disks attached to the IDE controller. |
MB/Sec |
These measures are good indicators of the activity on the disks attached to the IDE controller. |
||||||
Disk writes by VM |
Indicates the the number of bytes written per second to the disks attached to the IDE controller. |
MB/Sec |
|||||||
Deposited pages |
Indicates the number of memory pages currently deposited into the partition. |
Number |
For each partition, the hypervisor maintains a memory pool of RAM SPA pages. This pool acts just like a checking account. The amount of pages in the pool is called the balance deposited or withdrawn from the pool. When a hypercall that requires memory is made by a partition, the hypervisor withdraws the required memory from the total pool balance of that partition. When the balance available in the pool is less, then more memory pages are deposited in the pool. A very high value of this measure therefore, indicates that the balance in the pool maintained for this partition is dwindling. This is a cause for concern. |
||||||
Hypercall |
Indicates the rate of hypercalls made by this guest’s code on the virtual processor. |
Hypercalls/Sec |
Hypercalls are one form of enlightenment. Guest OS’s use the enlightenments to more efficiently use the system via the hypervisor. TLB flush is an example hypercall. If this value is zero, it is an indication that Integration Components are not installed. New OS’s like WS08 can use hypercalls without enlightened drivers. So, hypercalls are only a prerequisite and not a guarantee for not having Integration Components installed. |
||||||
Control register accesses |
Indicates the rate of control register accesses by this guest on its virtual processors. |
Accesses/Sec |
Control registers are used to set up address mapping, privilege mode, etc. |
||||||
HLT instructions |
Indicates the rate of HLT instructions executed by t his guest on its virtual processors. |
Instructions/Sec |
A HLT will cause the hypervisor scheduler to de-schedule the current VP and move to the next VP in the runlist. |
||||||
Emulated instruction |
Indicates the rate of emulated instructions while executing guest code on the virtual processor. |
Instructions/Sec |
|
||||||
MWAIT instructions |
Indicates the rate of MWAIT instructions executed by this guest on its virtual processors. |
Instructions/Sec |
The MWAIT (monitored wait) instruction instructs the processor to enter a wait state in which the processor is instructed to monitor the address range between a and b and wait for an event or a store to that address range. |
||||||
CPUID instructions |
Indicates the rate of CPUID instructions executed by this guest on its virtual processors. |
Instructions/Sec |
The CPUID instruction is used to retrieve information on the local CPU’s capabilities. Typically, CPUID is only called when the OS / Application first start. Therefore, this value is likely to be 0 most of the time. |
||||||
Page fault intercepts |
Indicates the rate of page fault exceptions intercepted by the hypervisor while executing this guest’s code on the virtual processor |
Intercepts/Sec |
Whenever guest code accesses a page not in the CPU TLB a page fault will occur. This counter is closely correlated with the Large Page TLB Fills measure. |
||||||
Total intercepts |
Indicates the rate of hypervisor intercept messages. |
Intercepts/Sec |
Whenever a guest VP needs to exit its current mode of running for servicing in the hypervisor, this is called an intercept. Some common causes of intercepts are resolving Guest Physical Address (GPA) to Server Physical Address (SPA) translations, privileged instructions like hlt / cupid / in / out, and the end of the VP’s scheduled time slice. |
||||||
Large page TLB fills |
Indicates the rate of virtual TLB fills on large pages. |
Fills/Sec |
There are two types of TLB entries (and some three). Small TLB which generally means a 4K page and large Page which generally means 2MB. There are fewer Large TLB entries on the order of 8 – 32. A non-zero value for this measures indicates that the root partition is using large pages. |
||||||
Small page TLB fills |
Indicates the rate of virtual TLB fills on 4K pages. |
Fills/Sec |
There are two types of TLB entries (and some three). Small TLB which generally means a 4K page and large Page which generally means 2MB. There are fewer Large TLB entries on the order of 64 – 1024+. |
||||||
Cpu utilization of VM |
Indicates the percentage of allocated CPU resources that this VM is currently using. |
Percent |
Comparing the value of this measure across VMs will enable you to accurately identify the VMs on which CPU-intensive applications are executing. |
||||||
Disk capacity of VM |
Indicates the total disk capacity of the VM. |
MB |
Since VMs are easy to create and deploy, many a time an administrator might be faced with scenarios where many VMs are created on an Hyper-V host, but very few are actively used. A VM, whether powered on or off, consumes disk space on a host. When the Hyper-V server hosting the VMs runs low on disk space, administrators might want to know which VM is taking up maximum disk space. This measure reveals the disk capacity of a VM, regardless of its on/off state. A quick comparison of the capacity across VMs can enable administrators to accurately identify the VM that is taking up maximum disk space. |
||||||
Disk reads and writes by VM |
Indicates the rate at which read-write requests were processed by this VM. |
Kbytes/Sec |
Compare the value of this measure across VMs to know on which VM I/O activity was abnormally high. |
||||||
Data sent and received by VM |
Indicates the rate at which network I/O is processed by this VM. |
Mbps |
Compare the value of this measure across VMs to know on which VM network I/O activity was abnormally high. |
||||||
VM health
|
Indicates the current state of this VM. |
Number |
If the value reported by this measure is 1, the status is Ok. If the value reported by this measure is 3, the status is Critical. The Detailed Diagnosis (DD) of this measure shows the VM State, Process ID, and Operational Status. |
||||||
CPU ready time |
Indicates the time duration during which this VM was ready to run (i.e. it had requests to dispatch to the logical processor) but was not able to because of processor contention. |
Milliseconds |
The values of these measures should typically be low. The more time a VM spends waiting to run, the more lag time there is in responsiveness within the VM. |
||||||
CPU ready |
Indicates the percentage of time during which this VM was ready to run (i.e. it had requests to dispatch to the logical processor) but was not able to because of processor contention. |
Percent |