I have noticed a lot of search results hitting my blog asking
Question: How much CPU ready is OK?
so I thought I would address this question with a quick post.
Of course the answer is it depends, for example Server workloads have a lower tolerance to CPU ready than desktop workloads but as a rule of thumb, here is my thoughts.
For Production server workloads
<2.5% CPU Ready
Generally No Problem!
2.5%-5% CPU Ready
Minimal contention that should be monitored during peak times
5%-10% CPU Ready
Significant Contention that should be investigated & addressed
>10% CPU Ready
Serious Contention to be investigated & addressed ASAP!
In my experience, the above have been good for a rule of thumb.
However, applications which are latency sensitive may be severely impacted even with low levels of CPU ready, these types of VMs should be on clusters with lower CPU overcommitment, leverage DRS rules to separate the contending workloads or in extreme cases, dedicated clusters.
On the flip side, Some servers are much more tolerant to CPU ready, and 5%-10% CPU ready or higher may not noticeably impact performance.
Keep in mind that setting CPU Reservations does not solve CPU Ready, see my post on the topic for more details.
VMware vCenter Operations is a tool which can help easily identify contention (including CPU) within your vSphere environment.
For Virtual Desktop workloads, what level of CPU ready is acceptable will largely depend on the individual user (ie: Power User verses Task Worker). Keep in mind virtual desktop deployments generally have high CPU consolidation ratios of around 6:1 all the way to >12:1.
I would suggest the following , again as a rule of thumb
<5% CPU Ready
Generally No Problem!
5%-10% CPU Ready
Minimal contention that should be monitored during peak times
>10% CPU Ready
Contention to be investigated & addressed where the end user experience is being impacted.
Any Higher CPU ready will likely be impacting your users, and should be investigated.
VMware have recently released vCenter Operations for View, which you could use to monitor your VMware View environment.
Pingback: High CPU Ready with Low CPU Utilization? « CloudXC
I don’t remember when the change happened but CPU Ready as a percentage is not available in the vSphere client anymore. It’s a summation value now so you have to convert that to a percentage.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2002181
Maybe you can update this posting to include what the summation values that would be
Thanks for the comment Marc. You can view CPU ready as a percentage if you goto the performance tab for a VM and use the “Overview” tab.
The graph at the top left of the screen shows CPU utilization and CPU Ready. Note: If a VM has multiple CPUs you will get a CPU ready values as a total for all vCPUs and individual vCPU values. Focus on the per vCPU value rather than the sum total.
Hope that helps.
Hundreds of VMs – going to each one and checking CPU Ready % – ouch.
Also Alarms track this as time in ms
Agreed, checking each VM would take a long time but vCenter Operations can report on contention which avoids this overhead.
However I think its important VMware administrators understand where to look when troubleshooting specific performance issues affecting limited numbers of VMs.
I’ll update my post to include details of the acceptable ms of CPU ready and how its calculated to help people set suitable alarms.
Thanks for your comments.
Hi Josh!
Great post.
I dont see the update you mention on acceptable ms and alarms?
This probably isn’t monitored anymore but I had a question on the new summation ms metric that CPU Ready now has from the advanced chart. I ran across an article that states the % can be calculated by taking into count the update time of the chart. How exactly does this work when looking at past history?
I have a VM in particular where the ms value of CPU ready increases as I look further back into history. How should I be calculating this %?
Nevermind… I’ve found my answer. Thanks for your informative post above.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2002181
You can also use the calculator at http://www.vmcalc.com to calculate CPU ready numbers