ESXi and Windows Server CPU parking

For those that don't know, CPU parking is a feature in recent Windows Server releases that allows Windows to pretty much drop a CPU core to zero use, and having nothing use it. It's been introduced as a power-saving measure. There's more detail about it here, amongst other places.

However what I'm curious about is whether this matter on a virtualised guest - or is CPU parking more of a hindrance than a help, given that the physical CPUs are managed by ESXi, not Windows, and that a parked CPU is less likely to deal with traffic unless the scheduler deems there's enough work to unpark the CPU?

I've not found anything about this - I do suspect it will be very much based on a given workload, but I've not seen any discussion (unlike, say, whether hyper-threading has any effect, which seems to be discussed regularly). Whilst I do understand the "test with your workload" I was wondering if there was any advice/guidelines out there that I've missed.


Solution 1:

Definitely try to right-size your VMs.

If you have enough free virtual CPUs to be concerned about "CPU parking", you may have too many allocated to the VM.

It's not a common request, so I'd just rely on the traditional resource management tools unless you're currently having a performance problem.

Edit:

You are having a performance problem.

  • Make sure you have VMware tools installed.
  • Set your Windows VM Power Options to High Performance

enter image description here

Solution 2:

It wouldn't matter. If you want to save power, allocate less cores to the VM guest. Windows will try to manage its "virtual" cores, but it has no control over the hypervisor so it wouldn't affect the actual physical CPUs on the system.