About Azul Zing System Tools
Azul Zing System Tools (ZST) is a component of Azul Platform Prime that allows you to coordinate memory usage between Azul Zing Builds of OpenJDK (Zing) 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 Zing 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: Zing without ZST, Zing without ZST but with Transparent Huge Pages (THP) configured, or Zing 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 |
CentOS Linux |
7.3 or later |
not supported |
7 or later |
CentOS Stream |
8 or later |
8 or later |
8 or later |
|
Oracle Linux |
UEK [1] |
7.3 or later |
7.6 or later |
7 or later |
RHCK [2] |
7.3 or later |
8 or later |
7 or later |
|
Ubuntu |
16.04 LTS or later |
18 or later |
16.04 - 20.04 |
|
SLES |
12 SP5 |
12 SPR or later |
12 SP5 |
|
Debian |
9 or later |
10 or later |
9 and 10 |
|
Amazon Linux |
1, 2 |
Since 2018 |
1, 2 |
|
Amazon Linux 2023 |
all versions |
all versions |
not planned |
Note
|
For technical questions about the table above, contact us at [email protected] |
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.
NoteFrom Zing 19.07 to 20.03, the max heap size without ZST is 1 TB. As of Zing 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.-
See System Requirements to verify minimum OS version requirements for Azul Platform Prime without ZST.
-
See System Tools Requirements for minimum OS requirements for Azul Platform Prime with ZST.
-
-
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 Zing 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 Zing 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 usingreserve-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].