JVM memory configuration
search cancel

JVM memory configuration

book

Article ID: 378866

calendar_today

Updated On:

Products

CA API Gateway

Issue/Introduction

What considerations need to be taken in account when configuring the Gateway java JVM size for a deployed appliance configured with 60 GB memory

We configure the appliance multiplier with a ratio of 2 / 3.  What we observed is garbage collection occurring at 32 GB and SWAP space high usage 

Environment

Gateway 10.x 11.x

Cause

Why this is not a good configuration:

Multiplier of 2 /3 with an Appliance with 60GB results in JVM gateway size of 40GB 

Java disables Compressed Oops (UseCompressedOops) for application heaps larger than 32 GB changes the memory allocation size from 4 to 8 bytes, reducing the number of objects it can store in the heap. This means that increasing the maximum heap to a value near 32 GB and up to 47 GB will actually decrease the amount of memory available, leading to possible OutOfMemoryErrors

Resolution

Recommended Gateway appliance with 60 GB memory to set multiplier back to default 1 / 2  (~30GB) 

If more memory is needed set the appliance to 64 GB then set multiplier to 3 / 4  (~48GB), NOTE this leaves 16 GB for operating system and other applications (MUST be TESTED) 

Multiplier location /opt/SecureSpan/Gateway/runtime/etc/profile.d/appliancedefs.sh


 

Additional Information

How it works:

Java size for Appliance gateway is determined in the startup script

/opt/SecureSpan/Gateway/runtime/etc/profile.d/appliancedefs.sh

Line:

# Maximum amount of RAM to use

# ram units in Kilobytes

multiplier="1/2"

let java_ram="$system_ram*$multiplier"

 

Default configuration the multiplier is set to 1 / 2 which uses half the system memory 

32 GB image will equal 16GB JVM for gateway application