October 30, 2018
CPU ready is the percentage of time the Virtual Machine is ready but cannot get physical CPU resources from the hypervisor to run its processes. Basically, higher the CPU ready time, the worse off it is for your vSphere environment. CPU ready is a very critical metric and is generally associated with heavy performance degradations.
vCPU and Physical Cores
In order to understand CPU ready, it is important for us to understand the concept of vCPU and Physical Core. Each vCPU is seen as a single physical CPU core by the ESXI host. vCPU’s are given timeslots by the hypervisor, so that it can utilize the available physical cores.
Lets assume that 1vCPU = 1 Physical Core. It is quite common to provision multiple VM’s where the sum of their vCPU levels exceeds the total number of Physical CPU’s.
Ie. Let’s take an example of a host that has 10 Physical Cores and the VM’s provisioned inside it.
VM
|
vCPU
|
VM A
|
4
|
VM B
|
4
|
VM C
|
4
|
Here the sum of the vCPU is 4 + 4 + 4 = 12 vCPU, however the total number of Physical CPU available is 10. Since each of the VM’s require 4 vCPU’s, it is not possible to have 3 VM’s use CPu at the same time.
VM A and VM B would use the physical core initially, and when one of them is done, the hypervisor will schedule VM C to take up 4 Physical cores.
The time period that VM C has to wait in order to get the CPU resources is called CPU ready.
CPU Oversubscription and Host Over-Commitment
CPU Oversubscription and host over-commitment are the main causes of CPU ready time. First of all, you should understand, that it is quite normal to have more vCPU’s than the pCPU’s available. Otherwise, what’s the point of Virtualization!
However, the ratio of vCPU to pCPU must be at a sweet spot. It is recommended that the ratio should be 1:3 or less in order to minimize the CPU ready time. It is also recommended to keep CPU ready time to less than 5%.Anything greater, can cause severe production issues.
Will DRS (Distributed Resource Scheduler) help?
Short answer – No! DRS only takes into account CPU and Memory utilization into account while moving resources.
Ok, so how do I look for CPU ready?
For quick troubleshooting, you can use vSphere client to monitor the CPU ready time for individual VM’s.
For a wholistic view, a tool like Uila can easily help graphically identifying CPU ready and the hosts that are over committed. For example –
You can also quickly identify the oversubscription on the host –
So next time, if you have any CPU performance issues but your CPU utilization is low, keep in mind that it could be CPU ready.
Note: This article was published originally on the Data Center Dummy blog site http://www.dcdummy.com/ .
Note: This article was published originally on the Data Center Dummy blog site http://www.dcdummy.com/ .
Subscribe
Latest Posts
- How Data Center System Administrators Are Evolving in today's world
- Microsoft NTLM: Tips for Discontinuation
- Understanding the Importance of Deep Packet Inspection in Application Dependency Mapping
- Polyfill.io supply chain attack: Detection & Protection
- Importance of Remote End-User Experience Monitoring
- Application and Infrastructure Challenges for Utility Companies
- Troubleshooting Exchange Server Issues in Data Centers
- Importance of Application Dependency Mapping for IT Asset Inventory Control
- Navigating the Flow: Understanding East-West Network Traffic
- The imperative of full-stack observability