Day 2 Action to resize a virtual machine memory fails with "Requested memory is more than the available memory placement"
search cancel

Day 2 Action to resize a virtual machine memory fails with "Requested memory is more than the available memory placement"

book

Article ID: 398712

calendar_today

Updated On:

Products

VCF Operations/Automation (formerly VMware Aria Suite)

Issue/Introduction

  • When attempting to increase the memory allocation for a virtual machine using the VMware Aria Automation portal, you may encounter the following error:
    Requested memory is more than the available memory placement: 8,800 MB
  • This occurs even though sufficient physical memory is available on the ESX host, and you can successfully resize the VM directly in vCenter.

Environment

VMware Aria Automation 8.18.x

Cause

The error is caused by an enforced memory limit configured under Group Resource Placement (GRP) associated with the project. Although vCenter has available memory, Aria Automation evaluates memory placement against this limit. If active deployments under the same GRP exceed or nearly reach the configured memory limit, new memory allocations such as during a resize, will fail.

Resolution

Identify the GRP (Project) linked to the affected deployment:

  1. SSH into one of the Automation appliances.
  2. Connect to Postgres using the following command:
    vracli dev psql provisioning-db
  3. Run the following query to identify the GRP associated with the virtual machine by targeting the custom_properties field in the compute_state table
    SELECT custom_properties->>'__groupResourcePlacementLink' AS grp_link, id, name
    FROM compute_state
    WHERE id = '<VM_UUID>';
    This will return a GRP link for the deployment similar to: /provisioning/resources/group-placements/################-####-####-####-####################
  4. Check the memory limit assigned to the Project:
    SELECT memory_limit
    FROM group_resource_placement_state
    WHERE document_self_link = '<GRP_LINK>';
    Note: Replace <GRP_LINK> with the actualy value pulled from Step #1.
  5. Calculate the Total VM memory consumption values for this Project
    SELECT SUM(cd.total_memory_bytes)
    FROM compute_description cd
    INNER JOIN compute_state cs ON cd.document_self_link = cs.description_link
    WHERE cs.type = 'VM_GUEST'
      AND cs.lifecycle_state != 'RETIRED'
      AND cs.document_update_action IN ('POST', 'PUT', 'PATCH')
      AND cs.custom_properties->>'__groupResourcePlacementLink' = '<GRP_LINK>'
      AND (cs.document_expiration_time_micros = 0
           OR cs.document_expiration_time_micros > (EXTRACT(EPOCH FROM NOW()) * 1000000)::BIGINT);
    Note: This will return the current memory in bytes) consumed under this Project.
  6. Compare the usage to the Project Limit:
    1. If the sum returned in Step #3 is near or exceeds the value from Step 2, then the error is expected. For example: GRP memory limit = 558345748480 (~520GB) compared to Current Usage: 549118279680 (~511GB)
      1. In this example, any resize request pushing the total over the Project limit will fail with a placement error.
      2. Proceed to the Procedure section.

Procedure

Increase the memory allocation within the Project configuration, then retry the resize request.