In the past I always got the advice to avoid 4VCPU's on a 4 CPU host because of the overhead this is causing and possible lock on the 4CPu's.
I want to gather some ideas about this because I think this is controversial ?
Kind Regards
Erik
Becasue a virtual machine with multuiple vCPU's needs to co-schedule it's requests to seperate physical CPU's simultaneously, you end up with really high ready-times.
Basically a VM can't execute any instructions unless all 4 physical CPU's are free. So even if the ESX host has 2 CPU's idle and available, your virtual machine will not be able to make use of them.
I would not even consider a 4vCPU machine unless I had at least 16pCPUs or cores to run against. the overhead due to CPU Ready times on a machine with less CPU/cores would negate any performance benefits you could receive by using 4vCPU.
As Mr T has mentioned you need 4 pCPU/Cores available at the same time to process a single processor cycle in your VM and as CPU0 is utilised by the Service console unless you have a larger number of core or pCPU available you will be waiting for the Service console to release CPU0.
therefore a minimum of 8 logical processors would be needed to guarantee any amount of performance. Just because you can do something does not necessarily mean you should.
Tom Howarth
VMware Communities User Moderator
I agree. One last question : Is there a risk in counting on the cores and not on the physical CPU's?
this is a gerat idea.....
Sorry, what exactly do you mean by that?
Tom Howarth
VMware Communities User Moderator
I mean : e.g. an 8 pCPU compared to a 4pCPU with dual Cores
no, there was a risk in counting HT cores as they were not complete logical processors, but that is not true with Cores as they are a full CPU.
Tom Howarth
VMware Communities User Moderator