Visit Azul.com Support

Azul Zulu Prime System Tools Memory Configuration

Looking for Zing? The Azul Zing Virtual Machine is now Azul Zulu Prime Builds of OpenJDK and part of Azul Platform Prime. Learn more.

If you have the Azul Zulu Prime System Tools (ZST) installed, you can configure the Zing Memory either by using the system-config-zing-memory wizard (see Configure Zing Memory for details) or by directly modifying the settings in the /etc/zing/pmem.conf file.

To reload the modified settings, a restart of the zing-memory system service is needed. The restart is possible only when all Azul Platform Prime java processes are stopped.

The following command checks for running Azul Platform Prime java processes:

 zing-ps -s 

To restart the ZST zing-memory system service, use:

 sudo service zing-memory restart 

The ZST can be configured in two different modes:

  • reserve-at-config: the memory pool used for all Java heaps is allocated and reserved during the start of the zing-memory system service

  • reserve-at-launch: the memory used for each Java heap is allocated at the time of the java process start. This behavior is similar to when using Azul Platform Prime without the ZST, which is possible since version 19.07.0.0 of the Azul Zulu Prime JVM.

See a configuration example for reserve-at-config in file /etc/zing/pmem.conf:

 # Memory configuration file version
version 2.0

# ZST status (should always be enabled)
# values: enabled | disabled
pmem enabled

# ZST mode
when-to-reserve reserve-at-config

# memory reservations for ZST, all in percentage of system RAM
# instead of % you can also use absolute values with unit specifier MB or GB

# reserved memory for Java heaps, sum of all -Xmx
Reservable 68%

# contingency memory
Contingency 4%

# pause prevention memory
PausePrevention 4%

# use all NUMA nodes
nodemask ALL 

See a configuration example for reserve-at-launch in file /etc/zing/pmem.conf:

 # Memory configuration file version
version 2.0

# ZST status (should always be enabled)
# values: enabled | disabled
pmem enabled

# memory cgroup enforcement
# values: enabled | disabled
cgroups disabled

# ZST mode
when-to-reserve reserve-at-launch

# memory limits for ZST, all in percentage of system RAM
# instead of % you can also use absolute values with unit specifier MB or GB

# total sum of all limits
OverallUpperLimit 76%

# limit for sum of all -Xmx
ReservableUpperLimit 68%

# contingency memory
# here we reserve a static block of 4% of system RAM
ContingencyUpperLimit 4%
ContingencyMinimumFreeMemory 4%

# pause prevention memory
# here we reserve a static block of 4% of system RAM
PausePreventionUpperLimit 4%
PausePreventionMinimumFreeMemory 4%

# use all NUMA nodes
nodemask ALL 

To view and verify the current configuration settings, run the following command:

 zing-ps -s 

This command also shows the current maximum available -Xmx value in megabytes. For the reserve-at-config mode, the maximum -Xmx is guaranteed and shown in the Free row of the Reservable column.

For the reserve-at-launchmode, only the theoretical upper limit of -Xmx is shown in the UpperLimit row of the Reservable column as the practically usable amount can be slightly smaller depending on the current memory fragmentation of the system.