Visit Azul.com Support

About Azul Zulu Prime System Tools

Table of Contents

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

Azul Zulu Prime System Tools (ZST) is a component of Azul Platform Prime that allows you to coordinate memory usage between Azul Zulu Prime Builds of OpenJDK (Azul Zulu Prime JVM) and the underlying Linux operating system.

Azul Platform Prime’s C4 garbage collector works the same way, with or without ZST. ZST enables Azul Platform Prime to support larger heap sizes, and to provide better memory management on older operating system versions that don’t have the required functionality already built in.

Generally, it is simpler to run Azul Platform Prime without ZST. Your operational overhead may be less complex without the need to manage ZST installation and configuration. However, there are some conditions which require the use of ZST, and there are some operational considerations which could also mean that ZST is a preference for you.

As of Azul Zulu Prime JVM 19.07, ZST becomes an optional component for Azul Platform Prime. With modern Linux kernels, the Linux kernel itself can provide most of the functionality that ZST provides. For most applications, the functionality now provided by modern Linux kernels is sufficient for good application performance on Azul Platform Prime, so we no longer require the use of ZST. However, there are some things that ZST can do that even the most modern Linux kernels can not, so in some cases, using ZST is still required, or desired if it gives better performance or simpler system management, and thus ZST remains an optional component for use with Azul Platform Prime.

Considerations

There are three main ways to use Azul Platform Prime: Azul Zulu Prime JVM without ZST, Azul Zulu Prime JVM without ZST but with Transparent Huge Pages (THP) configured, or Azul Zulu Prime JVM with ZST (ZST provides it own memory management for large pages). Each of these has different minimum operating system requirements, so a table format may be helpful. Read on below the table for details about each of the considerations.

Minimum Operating System versions to run Azul Platform Prime in each of these configuration types:

  • Azul Platform Prime without ZST - Recommended if ZST is not otherwise required or beneficial.

  • Azul Platform Prime without ZST, with Transparent Huge Pages - Recommended for heap sizes 100 GB or more or if lower throughput or reduced start time is seen without ZST.

  • Azul Platform Prime with ZST - Required for heap sizes over 2.5 TB and for older operating systems. Useful in environments where you can’t otherwise guarantee available memory at application launch time

Operating System Without ZST Without ZST, With Transparent Huge Pages With ZST

Red Hat Enterprise Linux

7.3 or later

8 or later

7 or later

CentOS

7.3 - 8.3

8 or later

7.3 - 8.3

Oracle Linux

7.3 or later

7

Ubuntu

16.04 LTS or later

18 or later

16.04 - 20.04

SLES

12 SP3 or later

12 SPR or later

12 (SP3, SP4, SP5)

Debian

9 or later

10 or later

9 and 10

Amazon Linux

1, 2

Since 2018

1, 2

More info about each of the considerations:

  • Java heap size (-Xmx)

    ZST is required for heap size above 2.5 TB. If you don’t require heap sizes above 2.5 TB, you should try running without ZST if your operating system supports it.

    Note
    From Azul Zulu Prime JVM 19.07 to 20.03, the max heap size without ZST is 1 TB. As of Azul Zulu Prime JVM 20.04, the max heap size without ZST is 2.5 TB.
  • Operating system version

    Using Azul Platform Prime without ZST requires the memfd_create(2) system call. This system call is available since mainline Linux 3.17. If you want to run Azul Platform Prime on an older operating system, you will have to use ZST. If your operating system supports running without ZST, you should try it.

  • Large Pages

    For large heaps in the range of 100 GB or more, large memory pages (2 MB) are recommended to increase throughput performance and JVM start time. Most modern operating systems can meet this need with Transparent Huge Pages. If your application sees reduced throughput or JVM start time when you test with Azul Platform Prime without ZST, try using THP. If you find yourself in this situation and your operating system doesn’t support Transparent Huge Pages, then you can run Azul Platform Prime with ZST as ZST implements a more efficient memory manager for large pages than standard Linux and is recommended in these situations.

    See Enabling Huge Pages for more info.

  • Reserved memory for your Java applications on Azul Platform Prime

    ZST can be used in reserve-at-config mode which reserves memory exclusively for use by Azul Zulu Prime JVM java process. Other processes using memory on the server will not be able to unexpectedly use up available memory on the host and impact your Azul Zulu Prime JVM application launches. An added benefit is the predictable application start time as you do not depend on Linux memory management at process start time when using ZST with "reserve-at-config". If you need to worry about other processes that might get run on the same host, you may prefer to use ZST to guarantee memory is always available for the Azul Platform Prime instances. If you don’t need to worry about other processes on the host, and the application is rarely restarted, this may be less of a concern for you and you may be fine without ZST, or with ZST using reserve-at-launch if ZST is used for other reasons. See Configuring Zing Memory with ZST for more info.

If you don’t use ZST, here are some things you should consider and configure if needed:

  • Enabling Huge Pages. For large heaps in the range of 100 GB or more, large memory pages (2 MB) are recommended to increase throughput performance and JVM start time. This can be enabled on all current modern operating systems.

  • Increase vm.max_map_count 

If you still have questions about ZST and non-ZST mode, please contact us at [email protected].