The %cstp value is the time vCPU is stopped from executing while waiting for other vCPU’s in the same virtual machine to execute/catch up. With this definition, cstop is not applicable to VMs with 1 vcpu.
Users have this conception that increasing the vcpu will increase the performance of VM. While this is true in many cases but not everytime. In this case, it becomes all the more important to understand the role of cstp and its acceptable value.
When the VM is ready to be executed, all of allocated vcpu need to be schedule togetheri.e. CPU scheduler cannot schedule 2 out of 4 VCPUs of a VM to start executing the threads. A guest operating system requires synchronous progress on all its CPUs, otherwise the OS and application will crash or fail. As one can imagine this being similar to taking out a CPU or one of the CPUs allocated had a failure.
In order to ensure that such workloads are not impacted even if the underlying cores are severely constrained, the CPU scheduler places the VM in a Co-Stop(CSTP) state.
This ofcourse can have adverse effect on the performance and is reflected as CSTP value being high.
%cstp value shouldn’t be higher than 3%. If it is generally higher than that then it may be that the VM has too many vCPU