Launcher Script


The tarball distributions of Humio include a Launcher Script that can be used to configure and start Humio when deployed within single node, cluster, and Docker configurations.

The launcher script is the recommended method for starting Humio and provides methods for setting configuration, performance and monitoring settings.

Starting Humio

The launcher script can be found in the tarball in the bin directory.

To start Humio using the launcher script:

  1. Download the tarball from the Humio Repo. Files are located within version specific directories.

  2. Extract the contents:

    tar zxf

  3. Change to the extracted directory:


  4. Execute the launcher script,, that is located in the bin directory.


The script sets some essential Java parameters and performance settings suitable for Humio automatically, taking account of the CPU and memory configuration of the environment. These can be customized by setting environment variables. See Configuration for more information.


The script is configured via environment variables. Setting a variable manually will disable the defaults set by the script. The following variables can be used to set the configuration and are set by the script:

  • General options

    • JAVA_HOME — The path to the Java binary. If not set, the Java on the PATH will be used.

    • HUMIO_MEMORY_OPTS — Heap space and other memory-related options. If not set, the launcher will attempt to calculate a reasonable default. Can be overwritten directly, or customized with the following variables:

      • TOTAL_MEMORY_MB — The total available memory on the host. If not set, the launcher will attempt to determine the available memory automatically.

    • HUMIO_JVM_PERFORMANCE_OPTS — Options related to the Java JIT compiler and other performance tuning. We do not recommend deviating from the defaults for this option.

    • HUMIO_GC_OPTS — Options for configuring the garbage collector.

    • HUMIO_JVM_ARGS — Setting this option will disable the launcher script defaults entirely, except the minimal required flags. If set, only the flags listed in this option will be used when booting Humio. We do not recommend using this, it is available for users that want to replace all of the launcher script's recommendations.

  • Debugging/monitoring options

    • HUMIO_JMX_OPTS — JMX configuration options, excluding the setting configuring the JMX port

    • JMX_PORT — The port to open for JMX access. Not set by default.

    • HUMIO_OPTS — Any settings that don't fit into the other variables. Blank by default.

    • HUMIO_DEBUG — If set, enables JVM debugging with default options. If not set (the default), debugging is disabled. Can be customized using the following variables:

      • JAVA_DEBUG_PORT — The port to open for debugger access

      • DEBUG_SUSPEND_FLAG — y to suspend the JVM on boot until a debugger attaches, n to not suspend.

      • JAVA_DEBUG_OPTS — The flags used for enabling debugging.

    • HUMIO_JVM_LOG_OPTS — Options for configuring JVM logging. Can be customized by with the following variables:

      • JVM_LOG_DIR — The directory to write JVM logs to. Defaults to the logs directory inside the Humio directory.

    • DRY_RUN — 'true' to skip launching Humio. The script will instead print the command line it would have used for launching Humio.

The configuration can be overridden by setting the corresponding environment variable before running the script. For example:

export JAVA_HOME=/opt/java

Configuring available CPUs

To configure the number of CPUs available to Humio, use the HUMIO_OPTS to configure the JVM directly:

export HUMIO_OPTS="-XX:ActiveProcessorCount=96"

Migrating Docker Deployments

Humio Docker distributions automatically use the launcher script.

It is recommended that HUMIO_JVM_ARGS is only used while migrating from an older container version. The launcher script variables should be used to take advantage of the launcher script configuration.