virtual machine – measure windows cpu performance when limits are applied

In the previous posts I wrote about virtual machine cpu limits not being exposed to the guest OS.

This presents concerns for systems and application admins when investigating performance related issues

The example vm has a cpu limit of 750 MHz, though neither the OS or vCenter are triggering alarms.

Keep in mind; operating system cpu percentage values have become obsolete due to the limit – the cpu percentage is that of the physical cpu on the host.

If you want to look at this from the OS, open Perfmon and add the counters

Processor – % Processor Time
VM Processor – % Processor Time*
VM Processor – Host processor Speed
VM Processor – Effective VM Speed in MHz
VM Processor – Limit in MHz

*VMware tools need to be installed

(system) Processor – % Processor Time*

system cpu is registering at 60%

After some additional testing I noticed that what the OS reports is almost inverse to vm processor time % , for example setting the limit at 25% of the physical cpu saw the system processor time report 73% usage and vm processor time report 24% usage. This unusual reporting only seems to happen when the vm is under pressure


VM Processor – % Processor Time

system cpu is reporting 40% usage


VM Processor – Effective VM Speed in MHz

This is more or less the same a the limit 748 Mhz, and this is very important – The vm is using all it’s MHz.


From the vCenter vm Performance tab we should look at ready values and CPU MHz Usage to get a clear picture.

The vm has reached the MHz and cannot process cpu cycles.
A 4470 ms ready peak might not mean much to a systems admin, but it stinks to a VMware admin, if we can convert ready Summation values to % here  and we see that 4000 ms is 20% ready… anything above 10% is considered bad.

ready and mhz

Another useful counter is Demand, here we see the vm wants 1109 (avg.) cpu but it is limited to 750 MHz


To sum up the performance indicators we need to look at are CPU Ready, Usage in MHz, and Demand in VCenter, and Limit and VM Processor – Effective VM Speed in MHz in windows perfmon.



In these follow up posts, we look at how to detect overly restrictive limits, setting a custom vcenter alarm to detect high ready issues, and understanding application cpu needs through vSphere performance console.

Detecting high vm cpu usage

Configure high cpu ready alarm

performance snorkel dives home

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.