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.
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
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)
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.