I use VMs for software developent and need to simulate multiple physical CPUs to be able to catch any multi-threading related problems better. My host has Intel Core i5 CPU (4 cores, no hyperthreading support). What number of vCPUs should I assign to my VMs in order to avoid performance penalty? Say, I would go for 2 vCPUs: Is it better to choose 1 vCPU with 2 cores or 2 vCPU with 1 core per vCPU? Or does not matter at all?
Thanks in advance!
From my understanding of how it works it really shouldnt matter whether you have 2 vCPUs with 1 core per or 1 vCPU with 2 cores per. Either way it will still be using 2 of your cores. So I don't see either one being more beneficial than the other. Hope this helps.
Thanks for the reply, but I'm still wondering. I've read somewhere that there actually is some difference between the two approaches. IIRC, if you choose 2 unicore vCPUs for the VM, you would have to ensure that the host will always have 2 of its cores dedicated to that VM. If one of those cores becomes overtaken by the busy host for a while, the guest will be suspended temporarily until it can get hold of 2 cores again. This scenario should not be applicable to VMs that use 1 multicore vCPU.
Can anyone confirm or deny this?
Regarding performance there's no difference. Reasons for using virtual multi-core vCPUs are usually licensing issue (SW licensed based on processors) and OS restrictions like the limit of 2 processors for e.g. Windows 7.
Thanks for prompt reply and confirmation that there is no difference between the two from the performance point of view. The licensing issue and CPU limit in OS definitely make sense.
Don't know if this helps, but I once cranked up the cores and the cpus on an XPx32 guest.
Adding a 2nd core locked up it.
Adding a 2nd CPU did fine, except for it sometimes crashing on bootup.
On an 8 core system, adding a 2nd CPU significantly sped up the guest.
J [Man are these VMWare foums messed up since they upgraded them]