You can scale the heap memory size of the vRealize Orchestrator server by creating a custom profile and modifying the resource metrics file.

You can adjust the heap memory size of the vRealize Orchestrator server, so your orchestration environment can manage changing workloads. For example, you can increase the heap memory of your vRealize Orchestrator deployment if you are planning to manage multiple vCenter instances.

Prerequisites

  • Scaling the heap memory of the vRealize Orchestrator Appliance is only applicable for standalone vRealize Orchestrator instances and is not supported for embedded vRealize Orchestrator instances in vRealize Automation.
    Note: To modify the heap memory of an embedded vRealize Orchestrator instance, you must increase the vRealize Automation profile size through the vRealize Suite Lifecycle Manager. For information on supported vRealize Automation profiles, see System Requirements.
  • Enable SSH access to the vRealize Orchestrator Appliance. See Activate or Deactivate SSH Access to the vRealize Orchestrator Appliance.
  • Increase the RAM of the virtual machine on which vRealize Orchestrator is deployed up to the next suitable increment. Because it is important that enough memory is left available for the rest of the services, the vRealize Orchestrator Appliance resources must be scaled up first. For example, If the desired heap memory is 7G then the vRealize Orchestrator Appliance RAM should be increased with 4G respectively because the subtraction between the default heap value of 3G and the desired heap memory is 4G. For information on increasing the RAM of a virtual machine in vSphere, see Change the Memory Configuration in vSphere Virtual Machine Administration.

Procedure

  1. Log in the vRealize Orchestrator Appliance command line over SSH as root.
  2. To create the custom profile directory and the required directory tree that is used when the profile is active, run the following script:
    vracli cluster exec -- bash -c 'base64 -d <<< IyBDcmVhdGUgY3VzdG9tIHByb2ZpbGUgZGlyZWN0b3J5Cm1rZGlyIC1wIC9ldGMvdm13YXJlLXByZWx1ZGUvcHJvZmlsZXMvY3VzdG9tLXByb2ZpbGUvCgojIENyZWF0ZSB0aGUgcmVxdWlyZWQgZGlyZWN0b3J5IHRyZWUgdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiB0aGUgcHJvZmlsZSBpcyBhY3RpdmUKbWtkaXIgLXAgL2V0Yy92bXdhcmUtcHJlbHVkZS9wcm9maWxlcy9jdXN0b20tcHJvZmlsZS9oZWxtL3ByZWx1ZGVfdmNvLwoKIyBDcmVhdGUgImNoZWNrIiBmaWxlIHRoYXQgaXMgYW4gZXhlY3V0YWJsZSBmaWxlIHJ1biBieSBkZXBsb3kgc2NyaXB0LgpjYXQgPDxFT0YgPiAvZXRjL3Ztd2FyZS1wcmVsdWRlL3Byb2ZpbGVzL2N1c3RvbS1wcm9maWxlL2NoZWNrCiMhL2Jpbi9iYXNoCmV4aXQgMApFT0YKY2htb2QgNzU1IC9ldGMvdm13YXJlLXByZWx1ZGUvcHJvZmlsZXMvY3VzdG9tLXByb2ZpbGUvY2hlY2sKCiMgQ29weSB2Uk8gcmVzb3VyY2UgbWV0cmljcyBmaWxlIHRvIHlvdXIgY3VzdG9tIHByb2ZpbGUKY2F0IDw8RU9GID4gL2V0Yy92bXdhcmUtcHJlbHVkZS9wcm9maWxlcy9jdXN0b20tcHJvZmlsZS9oZWxtL3ByZWx1ZGVfdmNvLzkwLXJlc291cmNlcy55YW1sCnBvbHlnbG90UnVubmVyTWVtb3J5TGltaXQ6IDYwMDBNCnBvbHlnbG90UnVubmVyTWVtb3J5UmVxdWVzdDogMTAwME0KcG9seWdsb3RSdW5uZXJNZW1vcnlMaW1pdFZjbzogNTYwME0KCnNlcnZlck1lbW9yeUxpbWl0OiA2RwpzZXJ2ZXJNZW1vcnlSZXF1ZXN0OiA1RwpzZXJ2ZXJKdm1IZWFwTWF4OiA0RwoKY29udHJvbENlbnRlck1lbW9yeUxpbWl0OiAxLjVHCmNvbnRyb2xDZW50ZXJNZW1vcnlSZXF1ZXN0OiA3MDBtCkVPRgpjaG1vZCA2NDQgL2V0Yy92bXdhcmUtcHJlbHVkZS9wcm9maWxlcy9jdXN0b20tcHJvZmlsZS9oZWxtL3ByZWx1ZGVfdmNvLzkwLXJlc291cmNlcy55YW1sCg== | bash'
  3. Edit the resource metrics file in your custom profile with the desired memory values.
    vi /etc/vmware-prelude/profiles/custom-profile/helm/prelude_vco/90-resources.yaml
  4. The 90-resources.yaml file should contain the following default properties:
    polyglotRunnerMemoryRequest: 1000M
    polyglotRunnerMemoryLimit: 6000M
    polyglotRunnerMemoryLimitVco: 5600M
    
    serverMemoryLimit: 6G
    serverMemoryRequest: 5G
    serverJvmHeapMax: 4G
    
    controlCenterMemoryLimit: 1.5G
    controlCenterMemoryRequest: 700m
    
    Property Type Description
    Polyglot properties Memory properties associated with the Polyglot scripting feature. The value of these properties is set in megabytes (M). When editing these values, remember that on average a container needs 64M of memory. With the default memory limit of 6000M, you can run approximately 100 Polyglot scripts in parallel.

    If you want to increase the number of Polyglot scripts that can run in parallel, you need to increase the values of the polyglotRunnerMemoryLimit and polyglotRunnerMemoryLimitVco properties.

    First, edit the memory limit of the polyglotRunnerMemoryLimit property and then change the value of polyglotRunnerMemoryLimitVco to be 300M less than the value you set in the polyglotRunnerMemoryLimit property.

    The following is an example polyglot memory limit configuration:

    polyglotRunnerMemoryRequest: 1000M
    polyglotRunnerMemoryLimit: 7000M
    polyglotRunnerMemoryLimitVco: 6700M
    Server memory properties The memory properties of the vRealize Orchestrator server. The value of these properties is set in gigabytes (G). First, edit the serverJvmHeapMax property with the desired memory value. The values of the serverMemoryLimit and serverMemoryRequest properties must be adjusted by adding 2G for serverMemoryLimit and 1G for serverMemoryRequest on top of the memory value selected for the serverJvmHeapMax property.

    The following is a example server memory configuration:

    serverMemoryLimit: 9G
    serverMemoryRequest: 8G
    serverJvmHeapMax: 7G
    
    Control Center memory properties The memory properties of the vRealize Orchestrator Control Center. The values of these memory properties should not be updated.
  5. Save the changes to the resource metrics file and run the deploy.sh script.
    /opt/scripts/deploy.sh

Results

You have changed the heap memory size of your vRealize Orchestrator server.