Virtualization – Best Practice for vCPUs per Physical Core

best practicesvcpuvirtualizationvmware-vsphere

I am trying to find some documentation or best practice guides for virtualization with respect to provisioning vCPUs per physical core (of a CPU). If it matters, I am looking at vmWare for the virtualization implementation. For example, an Intel Xeon CPU may have 4, 8, etc. cores. I am interested in learning more about provisioning beyond just one vCPU per one physical core. The vendor I am talking to definitely thinks that a single core can be provisioned into multiple vCPUs.

What I commonly see in my research thus far is, "Well, it depends on your application." And in that case, my application is editing code, compiling/linking, testing, and configuration management. Of course not all of the VMs need to be configured with multiple vCPUs per core, but in the general case.

Best Answer

A single physical CPU can be utilized as many vCPUs. You rarely run out of CPU resources in virtualization solutions. RAM and storage are always the limiting factors...

Remember, in VMware, CPU utilization is represented in MHz used, not cores... Unless you're pegging all of your virtual CPUs at 100% ALL OF THE TIME, I don't think your vendor is correct.

Let's look at the following cluster of systems...

  • 9 ESXi hosts.
  • 160 virtual machines
  • 104 physical CPU cores across the cluster.
  • The average virtual machine profile is: 4 vCPU and 4GB to 18GB RAM.
  • CPU can safely be oversubscribed... but remember, it can also be limited, reserved and prioritized at the VM level.

enter image description here enter image description here

from another active cluster - 3 hosts 42 virtual machines enter image description here