Too Many vCPUs Causing VMware VM Performance Issues? Check %CSTP

Giving a virtual machine more vCPUs doesn’t always make it faster. On a busy VMware ESX/ESXi host, extra vCPUs can actually slow a VM down because it has to wait for enough physical cores to be free at the same time. Here’s how to tell if that’s happening.

How to Check Co-Stop (%CSTP) in esxtop

  1. Open a console on the ESX host or connect to it over SSH.
  2. Type esxtop and press Enter.
  3. On the CPU screen, check the %CSTP value for the VM. If it’s higher than 3.00, the vCPU count may be causing the performance problem. Try lowering the VM’s vCPU count by one.
  4. In vCenter, you can also add Co-Stop to the real-time performance charts.

What %CSTP means: it’s the amount of time a multi-vCPU virtual machine spends waiting to be scheduled across multiple physical cores. The higher the value, the longer it waits and the worse it performs. Reducing vCPUs cuts that scheduling wait.

vCenter real-time chart showing the Co-Stop counter

Rule of Thumb: Start with One vCPU

Start VMs with one processor and add more only when it’s truly needed. Case in point: a DBA asked for 8 vCPUs for an Oracle database. I gave them to him, but the database soon started grabbing resources on the whole host. Once I showed him his server was causing the problem, we rolled it back several processors, and the database ran much better.