How many virtual processors or cores should I assign to my Guest OS? [closed]

I've just received an upgraded Host machine, and am looking to push some of those advances to my workstations Guest OS(s). In particular, I used to have a single processor, with 2 cores, so my Guest OS only had 1/1.

Now, I've got a single processor with 8 cores, so I'm curious about what would be recommended for my Guest OS now?

  • 1 processor/4 cores?
  • 2 processors/2 cores?
  • 4 processors/1 core?

My instinct says to stick with the number of physical processors (or less), but, is that based on reality? I spent a good while looking for an answer to this, but perhaps my google-karma isn't in my favor today.


Solution 1:

In my own testing, with VMWare Workstation, using latest GeekBench 3, 64-bit tests, on a host machine with 1 cpu, 2 cores (with HT turned on, so 4 cores):

Host System:

  • 2866 Single Core Score, 5939 Multi-Core Score

Virtualized:

  • 1 cpu, 1 core: 2783 sc, 2705 mc
  • 1 cpu, 2 cores: 2758 sc, 4271 mc
  • 1 cpu, 3 cores: 2783 sc, 5234 mc
  • 1 cpu, 4 cores: 2769 sc, 5793 mc

So, at least in my testing, it looks like there's a benefit to setting your virtual number of cores to match your physical cores. Maybe I'm wrong. I'd love to discuss.

Solution 2:

I don't know if this information is still valid, but in the not-too-long-ago past, additional guest CPUs didn't scale nearly as well as host CPUs did. In fact, best recommendation was to stay with single CPUs in your guest configurations unless you were specifically testing/debugging multithreaded software in your guests and required an SMP environment.

Edit: This answer is particular to desktop virtualization, not server virtualization.