Not able to update the CPU Resources Guaranteed value due to insufficient CPU resources error in VMware Cloud Director
search cancel

Not able to update the CPU Resources Guaranteed value due to insufficient CPU resources error in VMware Cloud Director

book

Article ID: 421565

calendar_today

Updated On:

Products

VMware Cloud Director

Issue/Introduction

  • On a Flex allocation model organization VDC, setting the CPU resources guaranteed to a value other than 0 is failing with an error similar to the following:

    There are insufficient CPU resources to complete the operation.

  • In the logs, an error similar to the following is seen:

    2025-11-26 17:49:45,144 | ERROR    | compute-fabric-activity-pool961 | GenericVirtualResourcePool     | vrp ######## (########-####-####-####-############):########-####-####-####-############ - Failed to reconfigure resource pool | requestId=########-####-####-####-############,request=PUT https://###########/api/admin/vdc/########-####-####-####-############,requestTime=1764179382346,remoteAddress=##.##.##.##:#####,userAgent= ...,accept=application/*+json;version 40.0.0-alpha vcd=########-####-####-####-############,task=########-####-####-####-############ activity=(com.vmware.vcloud.backendbase.management.system.TaskActivity,urn:uuid:########-####-####-####-############) activity=(com.vmware.vcloud.valc.activities.UpdateVdcActivity,urn:uuid:########-####-####-####-############) activity=(com.vmware.vcloud.valc.activities.UpdateComputeActivity,urn:uuid:########-####-####-####-############)
    com.vmware.ssdc.library.exceptions.InsufficientCpuResourcesException: The operation could not be performed, because there are insufficient CPU resources.
            at com.vmware.ssdc.library.vim.LmVim.Convert(LmVim.java:398)
            at com.vmware.ssdc.library.vim.LmVim.Convert(LmVim.java:504)
            at com.vmware.vcloud.val.internal.impl.VC20VirtualEngine.reconfigureResourcePool(VC20VirtualEngine.java:3116)
            at com.vmware.vcloud.val.internal.impl.VC20VirtualEngine.reconfigureResourcePool(VC20VirtualEngine.java:3143)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.updateResourcePool(GenericVirtualResourcePool.java:1348)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.handleResourcesAcrossRPs(GenericVirtualResourcePool.java:4339)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.updateBackingForCapacityChange(GenericVirtualResourcePool.java:4509)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool$UpdateCapacityRunnableContext.run(GenericVirtualResourcePool.java:4674)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool$UpdateCapacityRunnableContext.run(GenericVirtualResourcePool.java:4642)
            at com.vmware.vcloud.common.persist.ConversationContextExecutor.execute(ConversationContextExecutor.java:67)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool$3.run(GenericVirtualResourcePool.java:4568)
            at com.vmware.vcloud.common.persist.ConversationFactoryImpl.executeIsolated(ConversationFactoryImpl.java:371)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.executeRunnableContext(GenericVirtualResourcePool.java:4558)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.executeRunnableContext(GenericVirtualResourcePool.java:4551)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool.updateCapacityInternal(GenericVirtualResourcePool.java:1089)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool$1.execute(GenericVirtualResourcePool.java:1045)
            at com.vmware.vcloud.fabric.compute.vrp.GenericVirtualResourcePool$1.execute(GenericVirtualResourcePool.java:1042)
            at com.vmware.vcloud.fabric.compute.impl.RunnableContextTaskBase$1.run(RunnableContextTaskBase.java:17)
            at com.vmware.vcloud.common.threadpool.ThreadContextExecutor.executeImpl(ThreadContextExecutor.java:59)
            at com.vmware.vcloud.common.threadpool.ThreadContextExecutor.execute(ThreadContextExecutor.java:52)
            at com.vmware.vcloud.fabric.compute.impl.RunnableContextTaskBase.call(RunnableContextTaskBase.java:21)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at com.vmware.vcloud.common.threading.NDCContextAwareThreadPoolExecutor$NDCRunnableFutureAdapter.run(NDCContextAwareThreadPoolExecutor.java:77)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Caused by: (vim.fault.InsufficientCpuResourcesFault) {
       faultCause = null,
       faultMessage = null,
       unreserved = #####,
       requested = ######
    }
    ...

  • There are existing reservations on VMs in the resource pool that backs the VDC.

Environment

VMware Cloud Director 10.6.1.x

Cause

When setting the CPU resources guaranteed parameter, VMware Cloud Director will calculate a value based on the existing CPU allocation for the VDC and attempt to configure the resource pool with this value, where it was previously unlimited. In this case, the existing reservations on VMs in the resource pool exceed the reservation value being set, which prevents this change.

For example, if there are reservations configured on VMs in the resource pool totaling 25GHz and 1000GHz of CPU allocated to the organization VDC, setting the CPU resources guarantee to 1% will fail since 10GHz will be insufficient to account for the pre-existing 25GHz.

Resolution

Set a higher value for the CPU guaranteed resources that is sufficient for the total reserved CPU on the objects within the resource pool or reduce the existing reservations on the VMs in the underlying vSphere implementation.