Configuring RAM for AIP Console front-end and AIP Nodes

Summary: This page provides information about changing the RAM allocation for Console or Node services when deployed via Java JAR/Windows installers whether in 1.x or ≥ 2.x (enterprise and standalone mode). When using ≥ 2.x enterprise mode and you have deployed via Docker, RAM allocated to containers is managed by Docker.

Introduction

RAM requirements for host servers are listed in CAST AIP for Dashboards - Hardware requirements or in Hardware requirements for CAST Imaging, however, "out of the box", when running Console/Node in a non-Docker deployment scenario (i.e. using the Java JAR/Windows installers), the Windows Services and batch scripts made available to run the services (which are all Java services) are configured to run with conservative RAM memory allocations as shown in the table below:

ValueConsole ≤ 2.2.0Console ≥ 2.2.1Details
Xmx value1024MB2048MBMaximum memory allocation pool for a Java Virtual Machine (JVM).
Xms value256MB512MBInitial memory allocation pool for a Java Virtual Machine (JVM).

This means that even though the host server may have 64GB RAM available (for example), it will only give a maximum of 2GB to the JVM in which the various services run. You may therefore find that this is not sufficient and you may receive low memory/out of memory errors when running analyses or snapshots. If this is the case, CAST recommends increasing the Xmx and Xms values until your low memory/out of memory exceptions have been resolved as explained below.

CAST highly recommends using the following values in "large" deployment scenarios, for both Console front-end and all Nodes:

Xmx value4096MB
Xms value1024MB

Modifying Windows Services memory settings

  • Stop the relevant service
  • Execute the following executable on the host server depending on your requirements:
≥ 2.x - Enterprise mode Node
%PROGRAMFILES%\CAST\AIP-Node\tools\aip-node-servicew.exe >>> Note that it is not necessary to increase RAM for the Gateway, Registry or SSO/Keycloak authentication services since these do not perform any resource intensive actions

≥ 2.x - Standalone mode
%PROGRAMFILES%\CAST\AIP-Console-Standalone\tools\aip-standalone-servicew.exe >>> Only one service for both Console/Node

1.x
%PROGRAMFILES%\CAST\AipConsole\AipConsole\tools\aip-console-servicew.exe >>> For Console front-end
%PROGRAMFILES%\CAST\AipConsole\AipNode\tools\aip-node-servicew.exe >>> For a Node

The following configuration screen will be displayed. Click the Java tab (1) and make your changes as highlighted (2):

Click Apply and then OK to confirm the modification to the JVM memory settings, then restart the Windows Service to use the new settings.

Modifying default batch scripts

If you are using the default batch scripts to start the services, then you should modify the following files after having stopped the running service:

≥ 2.x - Enterprise mode Node
%PROGRAMFILES%\CAST\AIP-Node\tools\aip-node-app.bat >>> Note that it is not necessary to increase RAM for the AIP Gateway, AIP Registry or AIP SSO authentication services since these do not perform any resource intensive actions
 
≥ 2.x - Standalone mode
%PROGRAMFILES%\CAST\AIP-Console-Standalone\tools\aip-node-app.bat >>> Only one script for both Console/Node
 
1.x
%PROGRAMFILES%\CAST\AipConsole\AipConsole\tools\runAIPConsole.bat >>> For Console front-end installed on Microsoft Windows
install_location/CAST/AipConsole/AipConsole/tools/runAIPConsole.sh >>> For Console front-end installed on Linux
%PROGRAMFILES%\CAST\AipConsole\AipNode\tools\runAipNode.bat >>> For a Node

Locate the line containing the Xmx and Xms values and modify it as required. For example, for a Node:

java -jar -Xmx2048m -Xms512m "bin/aip-node-app.jar"

Save the file and then restart the relevant service.