CPU ready and its role in VM performance

CPU ready is a measure of performance in virtualization that indicates potential problems in the physical CPU. As a measure of how efficient the system is, it is used to track performance and resource utilization and avoid critical errors. To understand its importance in managing virtual machines, we'll explore the role of CPU ready as a performance metric.

Let's take an organization that owns a data center with a dedicated hardware system to run its operations. This system has a shared resource pool of 64GB of RAM, a computing capacity of 4GHz, and a storage of 128TB. If four different users have to use this system for their operations, conventional computing architecture would require them to wait for their turn until each of the others have completed their scheduled tasks. This manner of resource sharing is unoptimized and highly inefficient, considering that the hardware resources are almost always underutilized.

So, how does the organization work around this issue? The most practical solution is to partition the physical resources among the four users in a way that allows them to use the same underlying hardware independently and concurrently. This architecture, where multiple machines or systems are deployed on a common hardware, is called virtualization.

Virtualization: Its architecture and implementation

Data centers and service providers use virtualization to create abstractions of physical hardware in the forms of aggregated pools of logical resources. These pools may consist of CPUs, memory disks, file storage, applications, networks, etc., which can be offered to users in the form of virtual machines. This improves resource utilization, while allowing a computing environment to run multiple independent systems at the same time.

Virtualization is implemented by the use of hypervisors. A hypervisor is a special software or a program that simulates a virtual version of the hardware functionality. This creates a virtual platform on which multiple guest operating systems and subsequent applications can be deployed in the form of virtual machines, independent of each other. Each of these virtual machines is managed and controlled by an ESX server. An ESX server can give the user direct control of the underlying hardware resources while maintaining operational efficiency and reliability of all the virtual machines on the host. A cluster of such ESX servers are managed by the vCenter.

Key components of usage in a virtual environment need to be measured and monitored to gather tangible insights into what constitutes the optimal resource allocation standards. These metrics range across different categories like CPU, memory, network, disk I/O, disk space, etc. They provide an overview of the status of the host or the VM, thereby allowing network administrators to identify problematic VMs and drill down to address the process or application that is affecting the overall performance.

What is CPU ready?

CPU ready is a metric used to monitor the performance of a virtual machine in terms of resource usage. IBM, the pioneer of virtualization, defines CPU ready as, "the amount of time a VM is ready to use CPU, but was unable to schedule physical CPU time because all the vSphere ESXi host CPU resources were busy."

So taking the data center example from earlier, consider that the ESX host has four VMs (each with 16GB of RAM and 1GHz of CPU) deployed on it. If the physical CPU resource demand of a particular VM exceeds 1GHz, the system checks whether any of the other four VMs are idle, or running tasks requiring low processing power, so that CPU can be allocated to the demanding VM. If some other processes are already running on the CPU, it cannot be allocated to the demanding VM. The VM has to wait until the CPU is free to be able to utilize it for its own operations. The amount of time between when the VM is ready to process a job, but is waiting because of a lack of physical resources, is CPU ready.

CPU ready representation

CPU ready is generally represented in milliseconds (ms) and percentage (%), and is a critical metric to measure and monitor the health of a VMWare ESX host and its associated VMs. This metric is directly affected by the number of virtual machines running on the host and their individual CPU load. A CPU ready value of 0-50 ms is considered a healthy and optimized virtualization setup. Values of up to 300 ms are acceptable, while a CPU ready time of more than 500 ms might indicate performance issues. Values greater than 1,000 ms signify critical VMWare issues, which require immediate attention.

Converting CPU ready values into percentage (RDY%): A vCenter's performance charts generally show CPU ready value as a summation in milliseconds. These summation values can be converted to RDY% using the formula:

CPU Ready - ManageEngine OpManager

For default update interval values and further details regarding the conversion of CPU ready values, refer to this document by VMWare.

Note: The result of the above calculation, is a sum of the CPU %RDY time of each virtual CPU. The ready time of each individual core can be calculated by dividing the CPU RDY% by the number of cores on the VM.

Role of CPU ready in VM performance

Since the CPU ready values show how long a VM is idle because of lack of physical resources, this metric is widely used as a measure of a system's performance and resource utilization. CPU ready values can be directly related to issues like lack of resources, CPU over commitment, and instances of misconfiguration.

How much CPU ready is okay? VMWare CPU ready percentage varies from server to server based on the configured workload and the underlying physical hardware. However, the following range of values signify the thresholds for corresponding VM performance:

CPU ready (in %)

Interpretation

Effect

0 to 2.5

No issues

Excellent performance

2.5 to 5

Minimal effect

Must be monitored during peak times

5 to 10

Substantial effect

Visible performance degradation; issue must be identified and addressed.

>10

Critical situation

Requires immediate attention, else it would result in application errors or crashes

CPU ready is generally used along with CPU utilization to check for the source of the underlying issues. While CPU ready is the amount of time a VM is waiting to be scheduled onto the physical processor, CPU utilization is the measure of the computing capacity that is currently being consumed (in GHz).

Virtual machines that are set up with multiple vCPUs generally show a higher CPU ready time than the ones configured with fewer number of vCPUs. Some VMs show a high CPU ready even when the CPU utilization is low. This can be because some virtual machines on the host are oversized and not fully using the resources they are assigned, causing other VMs to choke on low CPU. This could also be because the host has been overcommitted, with or without properly sized VMs.

Rectifying high CPU ready values to enhance VM performance

In situations where you are burdened with high CPU ready values despite low CPU utilization, we recommend troubleshooting them using these recommended practices:

  1. Resize your virtual machines (CPU processing limit, number of cores, amount of allocated memory, etc.) so that they are neither too weak to perform computing, nor too over committed to hold resources without utilization.
  2. Do not over commit hosts and clusters.
  3. Migrate non-critical VMs off the host that is running business-critical VMs, so as to prevent contention for CPU scheduling.
  4. Migrate priority VMs to a host that has a higher number of cores and clock rate (GHz).
  5. Use DRS affinity rules to keep complimentary workloads together and non-complimentary workloads apart.
  6. Enable hyperthreading to improve the utilization of idle resources.
  7. Run the ESX server on peak performance by turning off power management.

In general, CPU ready values should be reduced after following some or all of these steps. Cases where the CPU ready time is low despite high CPU utilization (more than 90%), represent an ideal architecture where the ESX hosts and the VMs have been sized properly for the VM workloads.

How can OpManager help you in maintaining optimal VM performance?

Fixing VM issues is relatively simple once you know what to look for, among the various performance metrics. ManageEngine OpManager is an integrated network monitoring software that can help you monitor and maintain the virtualization systems deployed on your network. With a wide range of support for various VM vendors, including VMWare, Microsoft, and Citrix, OpManager's virtual machine monitoring gives you the functionality to map, monitor, and gather data regarding the real-time and historical performance of all your VMs in a host.

OpManager offers a huge array of performance monitors that constantly track and provide valuable insights into performance-critical metrics of the host and its VMs, such as CPU wait time, idle time, ESXi CPU ready, virtual machine CPU ready time and CPU utilization, and much more. Apart from the CPU metrics, OpManager also gives you insights into the memory, disk, and network status of the host and its associated VMs. These monitors are pre-configured with thresholds to alert you whenever there is an issue. Additionally, OpManager supports the monitoring of various hypervisors like Hyper-V, XenServer, and Nutanix, which are used to deploy virtual systems on the host.

OpManager's interactive UI lets you visualize the status of your virtualization architecture, including availability and performance, along with corresponding data in the form of graphs, dials, and reports.

Finally, OpManager provides data on the underlying hardware hosting the VMs. OpManager's hardware monitoring tool gives visible insights into various hardware metrics like temperature, fan speed, power voltage, processor clock speed, and other data regarding the hardware, so you can pinpoint any issues.

CPU Ready VMWare - ManageEngine OpManager
CPU Ready Time - ManageEngine OpManager
CPU Ready in VM performance
 
 

Interested in learning more? Get a free, personalized demo, or download a 30-day trial so you can explore OpManager's virtual machine monitoring features yourself. For a fully licensed version, request a quote here.

 

FAQs - CPU ready

What causes high CPU ready?

+

How is CPU ready calculated?

+

How to reduce CPU ready time?

+
 
 Pricing  Get Quote