| Measurement |
Description |
Measurement Unit |
Interpretation |
| 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_assigned |
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. |
| Cpu_used |
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. |
| Guest_run_time |
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_run_time |
Indicates the percentage of time the virtual processor spend in hypervisor code. |
Percent |
| Memory_size |
Indicates the amount of physical memory currently allocated to this VM. |
MB |
|
| Data_transmitted |
Indicates the number of bytes per second sent over the network adapters supported by this VM. |
Mbps |
|
| Data_received |
Indicates the number of bytes per second sent over the network adapters supported by this VM. |
Mbps |
|
| Data_dropped |
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 |
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 |
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. Pages are 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. |
| Hypercalls_rate |
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_rate |
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_rate |
Indicates the rate of HLT instructions executed by this 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_instructions_rate |
Indicates the rate of emulated instructions while executing guest code on the virtual processor. |
Instructions/Sec |
|
| MWAIT_instructions_rate |
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_rate |
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_rate |
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_rate |
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_rate |
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_rate |
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+. |
| VCpu_util |
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. |
| Total_capacity |
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_usage |
Indicates the rate at which the data is accessed from the disk. |
MB/Sec |
This measure is the sum of Disk_reads and Disk_writes measures. |
| Network_usage |
Indicates the rate at which the network I/O operations is performed in this VM. |
MB/Sec |
This measure is the sum of Data_transmitted and Data_received measures. |
| Current_sessions |
This measure is relevant only for monitoring of virtual desktops (i.e., for Hyper-V VDI servers). When reporting metrics for specific users, this metric indicates the number of sessions that each user has currently logged into; this measure will be available only if the test reports measures per currently logged in user. |
Number |
This is a good indicator of how busy the user is. The detailed diagnosis of this measure, if enabled, reveals the guests to which the user is currently logged on to. |
| Vm_health_state |
Indicates the current health state of this VM. |
|
The values that this measure can report and their corresponding numeric values are as follows:
| Measure Value |
Numeric Value |
| Ok |
1 |
| Major Failure |
2 |
| Critical Failure |
3 |
Note:
By default, this measure reports the Measure Values in the table above to indicate the health of the VM. In the graph of this measure however, the same will be represented using the numeric equivalents only.
The detailed diagnosis of this measure shows the VM State, Process ID, Operational Status and the Integration Service Version. |
| Cpu_wait_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_wait_pct |
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 |
|