1 Nickel

Re: Monster VMs performance 32vCPUs experience? beyond 16vCPUs drops?

The main point to keep in mind is that, to schedule a VM, vSphere needs to reserve one logical CPU (one core = one LCPU w/o HT, one core = 2 LCPU with HT) per vCPU in the VM. In other words, to run a 32 vCPU VM for a time slice, the ESXi will require the simultaneous availability of 32 LCPU.

If you have 32 physical CPU, it means that the ESXi kernel can't even schedule itself during the same time slice, which leads to significant performance degradation. Hyperthreading will somewhat mitigate the problem since you will benefit from extra-fast context switching, but it's still not equivalent to 64 physical CPU.

Even running a 24 vCPU VM on a 32 CPU server will generate significant latency, as the VM will need to wait for the simultaneous availability of 24 CPU before it can be scheduled.

Have a look at the CPU Ready statistics for the VM, and also look at the %CSTP value with esxtop (see VMware KB: Determining if multiple virtual CPUs are causing performance issues for more details about %CSTP).