When trying to set CPU reservation in MHz on a live VM, the operation fails with Task status "Insufficient capacity on each physical CPU
"
vSphere ESXi 7.x
The processor speed that is reported in ESXi/vCenter is up-rounded. For example, it reports a CPU speed as 2.1Ghz (or 2100 Mhz
). However, in most cases the CPU speed is somewhat less, e.g. 2095564Hz
- this can be seen by executing the esxcli command below:
#esxcli hardware cpu list
When making CPU reservations for a powered on VM, ESXi does NOT allow for slack room in CPU assignment and will use the exact physical speed (as per esxcli output above), e.g. 2 CPUs x 2095Mhz.
However, when making CPU reservations for a powered off VM, ESXi allows for a wiggle room and makes it possible to assign an up-rounded CPU in Mhz, e.g. 2 CPUs x 2100Mhz.
This issue has been fixed in ESXi 8.0 U2 EP2
Workaround
Power off the VM to assign an up-rounded CPU reservation.