Will setting up a VM with more than 1 cpu/ core actually improve performance?

When I use VMware workstation I can set the VM with multiple cores. I am actually using it on a machine with dual core and 4 logical cores. So would I really improve the VMS performance by using more cores on the VM?


it depends on what the VM is running, a guest on a machine with n number of cores will perform best at n-1 cores assigned so long as the guest is capable of utilizing multiple CPUs effectively. Unfortunately the simplest way to determine this is to try it and see. I usually start with 2 and stop when I run out of performance increase. Typically 2 cores is where I see the "sweet spot". Few app/os combinations I've run across will scale better than that.


To clarify, you're saying that you have a dual-core CPU, and you've assigned 4 virtual CPUs on the VM?

In this case, no; if you assign more vCPUs than you have physical execution cores, you will actually see a slight reduction in performance due to the overhead of sharing the 2 physical cores among 4 virtual cores (plus everything running on the physical host).

You will see the best performance from the VM by assigning it 2 vCPUs.


We experimented a while ago (see my question from a year ago) with assigning vCPUs from physical cores vs. logical cores (threads) in quad-core CPUs with hyperthreading (8 assignable vCPUs appeared to be available). As the answers I got back then suggested -- and our experience bore out -- you should allocate the minimum number of cores you can to each guest to allow it to perform.

When assigning more vCPUs than physical cores available on the host, if guests were under simultaneous load hyperthreading wasn't always fast enough at switching the CPU context between threads to effectively simulate another CPU. This can lead to very nasty stuff for all guests, including lockups and timeouts that can require rebooting, fsck, and worse on up the stack. Even if this stuff doesn't happen, performance will often be slower for guests rather than faster.

As @Chris S put it in his comment back then, "always allocate as little as you can get away with and you'll avoid big headaches."