Memory Configuration

Overview #

Edge is a Java application and therefore only uses as much memory as the Java Runtime Environment is configured to use, regardless of how much actual memory the server has available. By default the Edge turnkey installation is configured to only use 2GB of RAM to ensure it can run on a large variety of systems. This default should be changed on production systems to make use of all allocated memory.

Memory Runtime Options #

Refer to the Runtime Configuration page for all runtime options, including memory options and the default configuration values. The important options are documented below with additional information:

JAVA_MEMORY_MAX (-Xmx) #

For a server dedicated to running Edge, allocate as much available memory as possible. It is important to avoid allocating all memory however, as this may lead to the OS using swap memory (i.e. disk), further degrading system performance. Be sure to consider memory that the OS is using itself, as well as memory that other applications on the server are using.

On 32-bit operating systems there is a theoretical limit of 4GB, but in practice it depends on several factors. On 32-bit Windows systems, the maximum -Xmx setting that will work is approximately 1.6 GB. On 32-bit Linux systems, it is closer to 3 GB. Although the use of 32-bit systems is not recommended, it is possible that they would be used for development or testing purposes.

JAVA_MEMORY_INIT (-Xms) #

This sets the initial memory allocation requested by the Java runtime environment, which can then grow to the max size.

For production environments with dedicated resources, this should be set to match the max value.

Monitoring Garbage Collection #

Monitoring the JVM garbage collection events can provide insight into how Edge is utilizing the memory available to it and help to diagnose performance issues and out of memory issues.

To enable GC logging use the JAVA_GC_LOGGING runtime option which will generate a gc.log log file in the Edge logs directory. Enabling GC logging is not resource intensive and does not create a huge log – it is safe for production use. The Edge server must be restarted after changing this option.

Analysing the gc.log file produced is possible with a number of tools such as GCViewer, or Edge Support may be able to provide assistance by sending us the gc.log for analysis.