On a resource pool in a vSphere cluster with DRS enable, if the resource pool have a CPU limit, the effective resource pool CPU limit for each VM in the pool will be the VM's "nominal frequency x numvcpus" even if the sum of the required CPU resource of all VMs in the pool is far lower than the pool's limit.
vSphere 7.0 or newer.
vSphere DRS expects the amount of computing resources to be relatively static. As a result, it has no provision to adjust for the case that computing resources can dynamically change, such as when a host's CPU Turbo mode is turned on.
There is a pair of DRS's advanced options that could enable to use of the resource pool limit to control the VMs' CPU limit. Here are the settings that we have to do:
1. Set DRS's advanced options "AllowIdleTaxCpuLimits" to 0 and "AllowUnlimitedCpuLimitForVms" to 1.
2. Make sure that all VMs in the cluster have the CPU limit set to "unlimited".
3. Set the resource pool CPU to the desired limit.
Note: The net effect of the above setting is that all VMs in the resource pool will be permitted to utilize CPU resources in aggregate up to the CPU limit set by the resource pool. Each of the VMs in the resource pool will receive CPU resources in proportion to its configuration size.
For instance, if we have 2 VMs in a resource pool with settings of 2 and 5 vCPUs, and set the RP's CPU limit to 7000 MHz. The effective VMs' CPU limit will be 2000 and 5000 MHz, respectively.
Please be advised that the setting of the DRS's advanced options is effective on the entire cluster.