also knows as “co-stop”
Despite that others that have documented and blogged about %cstp, I still receive a lot of questions about it.
Let’s review – what is it again?
First it applies only to SMP virtual machines.
Second, it is a measure of the percentage of time a vCPU in an SMP virtual machine is “stopped” from executing, so that another vCPU in the same virtual machine could be run to “catch-up” and make sure the skew between the two virtual processors doesn’t grow too large.
Operating systems run on the premise that instructions to multiple processors will execute at the same time. If they do not and skew too far apart, the operating system can fail.
Should I worry about that skew?
No, the ESX relaxed co-scheduler (available since ESX 3.x) is smart enough to manage this. But in doing so can degrade performance of the VM in question if it’s not utilizing the virtual processors correctly.
So why should I watch for it?
A high %cstp measure can indicate an over provisioning of virtual processors within a VM. The application might not be using them effectively and in turn overall performance of that virtual machine will be affected. Try removing one or more vCPUs and watch the performance.
Taking this step in turn creates more scheduling opportunities for other workloads on the host and can increase performance of that VM – win/win!