Get started Bring yourself up to speed with our introductory content.

How is a physical CPU divided into multiple virtual CPUs?

How many virtual CPUs can you allocate to a VM, and how does this limit the number of VMs on a server?

A physical CPU is basically one core in the processor’s package with support for multiple execution threads (e.g.,...

Intel hyperthreading technology) turned off. This would mean that a Xeon processor with six cores would provide the server with six physical CPUs. When threading support is enabled, the server will see each thread as a physical CPU, so if each one of those six cores enables support for two threads, the server will see 12 physical CPUs.

When a hypervisor is installed, each physical CPU is abstracted into virtual CPUs, which basically divides the available CPU cycles for each core and allows multiple VMs to "time share" a given physical processor core. By default, the hypervisor typically assigns one workload per vCPU (per core).

A rule of thumb is that a virtual CPU can support anywhere from four to eight VMs. Suppose that we use a conservative limit, such as four VMs per virtual CPU. If the server offers two, quad-core processors (eight cores total), expect the server to potentially support (8 times 4) 32 VMs, or more. If there are four quad-core processors installed (16 cores total), expect the server to provide (16 times 4) 64 VMs or more.

Remember that the more VMs that share a virtual CPU, the fewer CPU cycles are available for each VM, and the more constrained VM performance will be. If the workloads on a server need more CPU cycles, it’s better to deploy fewer VMs on a particular virtual CPU.

In addition, you can also allocate several virtual CPUs to a VM, but it is important to never exceed the number of processors in the server. For example, if the server has only one processor socket, leave only one vCPU assigned per VM. If the server has two processor sockets, assign no more than two virtual CPUs to a VM. If the server has four processor sockets, assign no more than four virtual CPUs to a VM.

Next Steps

Monitor virtual CPU states to improve performance

Selecting CPUs and hardware for virtualization

Tips for picking the right CPU for virtualization

Dig Deeper on Server hardware and virtualization

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

How many VMs do each of your virtual CPUs support?
I am interested in more detail. I have noticed that assigning multiple vCPUs to a particular VM does not guarantee that it will run faster. I would like to know when to and when NOT to add more vCPUs to each VM and why. What exactly causes a VM not to be able to take advantage of multiple vCPUs.
Hi konakcc, This recent related article from Stephen Bigelow might help: If one vCPU is good, why wouldn't more be better?