In a vSphere 8.0 environment, you may experience the following symptoms when configuring a 100% CPU reservation for a virtual machine:
When the VM is powered off, setting a 100% CPU reservation using the CPU's nominal catalog frequency (e.g., 2200 MHz) succeeds.
When the VM is powered on, attempting to set or change to a 100% CPU reservation using the same nominal frequency fails with an error such as InsufficientPerCpuCapacity.
VMware vSphere 8.0
The actual hardware CPU clock frequency (measured speed) can be slightly lower than the published nominal catalog value (e.g., a measured speed of 2195 MHz versus a nominal speed of 2200 MHz).
By design, the system includes a tolerance buffer to absorb this minor discrepancy, which should allow 100% reservation configurations using the nominal value. However, in current vSphere 8.0 releases, there is a known limitation where this tolerance is not applied during hot-reconfiguration (while the VM is powered on). Consequently, any requested 100% reservation that exceeds the measured physical limit is strictly rejected
If you are running vSphere 8.0, you can use one of the following workarounds:
Workaround 1
Power off the virtual machine before configuring the full CPU reservation. Setting the 100% reservation while the VM is powered off will succeed, and the VM will power on normally afterward.
Workaround 2
If you must configure the full reservation while the VM remains powered on, determine the host's actual measured CPU speed and ensure the reservation does not exceed that value:
Connect to the target ESXi host via SSH.
Run the following command to check the measured Core Speed value: esxcli hardware cpu list
Convert the Core Speed from Hz to MHz (divide by 1,000,000) and set the VM's CPU reservation to a value that is equal to or less than this measured limit (e.g., 2195 MHz).
This issue is resolved in the vSphere 9.0 release.
In vSphere 9.0 and later, the tolerance buffer is correctly applied during powered-on reconfigurations, allowing you to set 100% CPU reservations using the nominal frequency.
vSphere 8.0 において、仮想マシンのパワーオン中に CPU 公表値を使用した 100% CPU 予約を設定できない