Visit Support

Setting Reservable Memory

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us
Looking for Zing?
The Azul Zing Virtual Machine is now Azul Zulu Prime Builds of OpenJDK and part of Azul Platform Prime.
Learn more

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

When you are configuring Azul Platform Prime to run your Azul Zulu Prime JVM 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.

Azul Zulu Prime JVM Allocation

Apart from Reservable memory for the Azul Zulu Prime JVM 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 Azul Zulu Prime JVM 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 Azul Zulu Prime JVM instance is not allowed to use any Contingency or Pause Prevention memory.