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
Gateway 10.x 11.x
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
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
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