CPU Calculation for Virtual Machine in Hyper-V and ESXi

There is much confusion about creating number of Virtual machines on a single host, keeping memory and storage unlimited. In-order to clarify , I would say ,Yes we do have limitation in creating VMs and its explained below in brief.

If you are using Windows Hyper-V for virtualization, so the number of VMs is dependent on the number of Virtual CPU available. We can have a multiple formula based on the scenario however the best on the basis of my personal experience I can put it in as

Since you have 32vCPU so you can create 32 VM with 1 vCPU each or 8VM with 4 vCPU each.

The maximum number of vCPU you can assign to a virtual machine in Hyper-V is 4.

Where as in VMWare , ESXi host enabled for hyper-threading should behave similarly to a host without hyper-threading . So the number of CPU allocation is not restricted or dependent on the basis of hyper-threading enabled or disabled.

In ESXi you doesn’t calculated based on vCPU available however it is totally dependent on the processing capacity. As you can restrict the usage of CPU capacity. So processing capacity can be calculated as :-

If we have 2 physical processor of 2.599GHz capacity and each processor has 6 Cores then as per formula,Total Processing Capacity = [2.599 (Processor rating)*2(physical processor)*6(cores per processor) ]GHz = 31.188GHz

Since we are now aware of the total processing capacity, so we can create a virtual machine by allocating a CPU and restricting its maximum CPU utilization to be 512 MHz ,the number of VM so similar configuration can be upto 609 VMs or you can create 12 VMs of 2.599GHz capacity its scalable or you can calculate based on your requirement or even if you wish you can leave its default configuration and VMWare will smartly manage the CPU utilization of all the CPU processing capacity ,only condition is that all the VMs collectively must not exceed the processing capacity at the same time which may result in bottleneck causing latency or slowness.