For a virtual machine running Windows 7/10, is there a maximum number of virtual CPU a hypervisor can assign to it? As hypervisor, consider VMware ESXi 5.5 or 6.0.


  • 1
    What hypervisor are we talking about? Windows does licensing via processor sockets which can pose an interesting problem. – dark_st3alth Oct 20 '17 at 9:04
  • I edited the question, anyway I want to consider VMware ESXi 5.5 or 6.0. – A M Oct 20 '17 at 9:22
  • Worth checking out this old question too in terms of the way you layout those sockets/cores - serverfault.com/questions/455999/… – Chopper3 Oct 20 '17 at 9:30
  • Chopper3, that old question concerned physical machines and physical processors. I don't know if I can consider the same things for virtual machines with virtual CPUs. – A M Oct 20 '17 at 9:46

The maximum specifications of the ESXi hosts are well documented. For example, from the document for ESXi 6.0:

Virtual CPUs per virtual machine (Virtual SMP) 128

However, due to the way VMware assigns CPU resources to VMs I usually recommend to use not more than 8 vCPU cores per VM, as long as CPUs are overprovisioned. (On our environment we run ~80 VMs with a wide variety of configurations on 32 physical CPU cores)

To clarify:

The ESXi host allocates CPU cycles to a VM when enough physical CPU cores are free to cover all virtual cores in the VM. That means, if you assign 16 cores to a VM, the VM will sit and wait until 16 physical cores are available, then the cycles will run simultaneous on the physical cores.

If your host has 64 physical cores, and you have 4 VMs with 16 cores each, this will obviously not matter. But if you overprovision CPU cores, running, for example, 20 VMs with 16 virtual cores each, because, hey, which VM ever uses all cores at once, you will notice a performance degradation.
(This behavior is, as far as I know, specific to VMware ESXi and does not apply do other hypervisors)

This are just examples, the best number depends on your hardware and number of VMs you intend to run on it. You will most probably do some testing until you find a good compromise.

  • Gerard, thank you for the clarification about ESXi. You wrote best practice of allocating virtual CPU for virtual machines. However, my question focused on maximum number of virtual CPUs a Windows 7/10 virtual machine can support, in ESXi. – A M Oct 20 '17 at 10:03
  • The guest OS is irrelevant, this applies to all VMs running on the hypervisor. – Gerald Schneider Oct 20 '17 at 10:06
  • Are there any limitations in terms of number of sockets a Windows 7/10 VM can manage? – A M Oct 20 '17 at 10:15
  • The question linked by Chopper3 answers that, at least for windows 7. Microsoft also provides documentation about hardware limitations. You can at least try to do a little research. – Gerald Schneider Oct 20 '17 at 10:51
  • 1
    I believe Hyper-V uses virtual CPUs to represent threads that can run ad-hoc on any core. One thing I would keep in mind is that the moment you provision your VM with enough virtual processors that it exceeds the number of cores on any one processor, you get into NUMA mode, which complicates processing at a hardware level be requiring the processors to synchronize some information (registers, caches, etc) that can sometimes lead to instability – Jonathon Anderson Oct 20 '17 at 15:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.