Visit Support

Setting Reservable Memory

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

Before setting reservable memory familiarize yourself with the memory structures that are allocated by the Azul Zing Builds of OpenJDK (Zing) in the Heap.

When you are configuring Azul Platform Prime to run your Zing instances, you can use the default options or modify memory allocation. The following is a list of considerations when you modify the memory allocation from default values. See Modifying Zing Memory Configuration for information on how to change the default memory configuration.

Zing Allocation

Apart from Reservable memory for the Zing instances, consider the memory required for Pause Prevention and Contingency memory. These typically constitute 10% of the total memory available for the Java heaps of Zing instances. These percentages can be modified. Refer to Modifying Zing Memory Configuration for information on how to configure and modify these percentages.

Configuring -Xmx<val>

As described in the previous section, Heap Memory in 32-Bit vs. 64-Bit Systems, running Java applications on 64-bit machines requires more Java heap.

Concurrent garbage collectors need marginally larger heaps than stop-the-world garbage collectors because concurrent garbage collectors allow application threads to actively allocate objects while the garbage collector is reclaiming pages.

In general, specifying a 50% higher value used with other garbage collectors is a good starting point, walking down from there to find the appropriate heap size for your application. Using Zing, you no longer need to worry about GC pauses that result from garbage collecting very large Java heaps.

Zing supports Java heap sizes from 512 MB to 20 TB when used with ZST. When used without ZST, the supported heap size ranges from 512 MB to 2.5 TB.

Configuring -XX:JavaMemMax=<val>

-XX:JavaMemMax controls the maximum amount of java heap memory that can be allocated to a process from Reservable, Contingency, and Pause Prevention memory pools.

Use the` -XX:GPGCPausePreventionMemory=<val>` parameter, to limit allocation from Pause Prevention memory pool alone.

If both GPGCPausePreventionMemory and JavaMemMax are specified on the command line, GPGCPausePreventionMemory controls allocation from Pause Prevention memory pool, and JavaMemMax controls allocations from Reservable and Contingency pools.

When -XX:JavaMemMax=<val> is set to the same value as Xmx, then the Zing instance is not allowed to use any Contingency or Pause Prevention memory.