Humio runs on the Java Virtual Machine (JVM). In this section we briefly describe things you should consider when selecting and configuring the JVM for Humio.
Humio requires Java 11. We recommend one of the following excellent and well tested distributions of the Java JVM runtime.
|Oracle||Java SE 11||x86_64|
|Amazon AWS||OpenJDK 11 Corretto||x86_64|
|Azul Systems||OpenJDK 11 Zulu||x86_64|
|BellSoft||OpenJDK 11 Liberica||x86_64, ARMv8|
|AdoptOpenJDK.net||OpenJDK 11 (HotSpot)||x86_64|
At Humio we operate Humio’s hosted offering using the Azul provided Zulu JVM version 11 as it is well tested, maintained and stable OpenJDK distribution. We are also impressed with the BellSoft provided Liberica distribution and are happy to see it support ARMv8 as well as Intel CPUs.
Here are some sample configurations. We have seen good results running the G1 collector in production here shown with a 10GiB heap. This configuration works on Java 11.
java -server -Xms10g -Xmx10g -Xss2M -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC
At this time we recommend using the Garbage First collector in production (
G1GC), however as of Java 12 there will be two fully concurrent, non-generational collectors with excellent potential for Humio workloads:
* Z Garbage Collector included with most OpenJDK 11 builds and
* ShenandoahGC included on RedHat or available for download here.
To use these collectors replace
-XX:+UseG1GC with either
-XX:+UseShenandoahGC and be sure to include