VSphere: performance impact when a large VM has more vCPU than cores on a single physical CPU

virtual-machinesvmware-esx

I'm running a vSphere private cloud configuration at a managed hosting vendor. The physical hosts have dual 14-core CPUs and 128 GB of RAM each.

An application that we run can multi-thread expensive computational tasks, and I have requested the vendor to create three VMs with 20 vCPU each, and 32 GB of RAM. Note that the vCPU to physical core ratio will remain extremely low, not much bigger than 1, and total RAM will be undersubscribed by a healthy amount.

Engineers at the vendor say that a 20-vCPU VM will negatively impact performance because it spans more than one physical (14-core) CPU socket, even though there is a total of 28 physical cores available on each host. This makes no sense to me, but I don't know enough about this and generally rely on the vendor recommendations. Are they correct about this warning?

Best Answer

This is a generally bad idea unless you can really justify the number of CPUs.

Please place the onus back on the provider. What do they recommend you do, based on the workload?

NUMA is less of an issue. But in practice, very few VMs in my environments have ever needed that number of CPUs. There were certainly more options and places to optimize before getting to that point.


I've been on both sides of this type of infrastructure. It sucks that this is what you need for your application... but it's really the provider's duty to make it work (or set maximums on parameters).

You're essentially forcing a one VM-per-host situation because of the size of the proposed virtual machine. That's the main reason the engineers are pushing back. The host becomes considerably less useful if it can only accommodate one of these virtual machines.