Wowza Streaming Engine Tune.xml configuration reference

The Wowza Streaming Engine™ media server Tune.xml configuration file located at [install-dir]/conf/Tune.xml provides fine-tuning of settings for the media server. For more information about performance tuning, see Tune Wowza Streaming Engine for optimal performance.

Note: The Tune.xml reference applies to the file as installed with the latest version of Wowza Streaming Engine. Some properties described may not apply to the file as installed with earlier versions of Wowza Streaming Engine.

Contents


HeapSize
GarbageCollector
VMOptions

XML reference


HeapSize

Defined settings for development and production environments or the setting of an absolute value.

Supported values

 
  • ${com.wowza.wms.TuningHeapSizeProduction}

    Assumption that Wowza Streaming Engine is the only application running on the server.
  • ${com.wowza.wms.TuningHeapSizeDevelopment}

    Assumption that Wowza Streaming Engine is sharing resources with other applications.
  • You can also specify a custom HeapSize level between 512 and 100000 megabytes (MB).
     

GarbageCollector

Defined settings that specify GarbageCollector options.

Supported values

 
  • ${com.wowza.wms.TuningGarbageCollectorG1Default}

Best G1 garbage collector settings for your hardware for Wowza Streaming Engine 4.8.27 and earlier. Uses a Java garbage collector designed for low pause time, high-throughput applications. The G1 collector is a server-style garbage collector targeted for multi-processor machines with large memories and is fully supported in Oracle JDK 7 Update 4 and later releases.

  • {com.wowza.wms.TuningGarbageCollectorGZDefault}

This is the recommended Generational Z Garbage Collector (ZGC) setting for your hardware with Wowza Streaming Engine 4.8.28 and later. This value corresponds to the default configuration included with the installer for Wowza Streaming Engine 4.8.28 and later, which adds support for Java 21. If you manually roll back the installer for Wowza Streaming Engine 4.8.28 (and later) to use an earlier Java version, you must also update the garbage collection settings to avoid startup errors. For compatibility information, see the OpenJDK ZGC wiki.

  • You can also specify a custom GarbageCollector setting directly, as shown in the following example:
     
    <GarbageCollector>-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:NewSize=512m<GarbageCollector>

Troubleshooting information

When you upgrade to a new version of Wowza Streaming Engine, it may fail to start due to a deprecated garbage collector in the older Wowza Streaming Engine version. To resolve this, launch Wowza Streaming Engine in standalone mode, then check for the following output:

cp: cannot stat '[PATH-TO/libstdc++.xx.x.x.xx]': No such file or directory
cp: cannot stat '[PATH-TO/libstdc++.xx.x.x.xx]': No such file or directory
cp: cannot stat '[PATH-TO/libstdc++.xx.x.x.xx]': No such file or directory
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

If you see the previous output, update the garbage collector being used in the [install]/conf/Tune.xml directory with this change:

<!--Change from-->
<GarbageCollector>${com.wowza.wms.TuningGarbageCollectorConcurrentDefault}</GarbageCollector>

<!--Change to-->
<GarbageCollector>${com.wowza.wms.TuningGarbageCollectorG1Default}</GarbageCollector>

VMOptions

List of additional virtual machine configuration options.

VMOption - Java virtual machine command-line option.

Example values

 
  • -server

    Appends the server option for maximum program execution speed for applications running in the server environment. When the -server option is appended, long-running server-side processes are optimized for that use case.
  • -Djava.net.preferIPv4Stack=true

    Boolean. If IPv6 is available on the operating system, the underlying native socket is an IPv6 socket. When true, this setting allows Java applications to connect to and accept connections from both IPv4 and IPv6 hosts. If an application is configured to use only IPv4 sockets, then this property can be set to true. The implication of such a setting is that the application won't be able to communicate with IPv6 hosts.
  • -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="${com.wowza.wms.AppHome}/logs"

    Dumps the heap to a file when java.lang.OutOfMemoryError is thrown. The path to the directory or file name that contains the heap dump is provided.
  • -Duser.language=en -Duser.country=US -Dfile.encoding=Cp1252


    String values that set the language and country of the current virtual machine. These values specify the local language, the local country, and the default character encoding, or charset, for the Java virtual machine.
  • -verbose:gc
    -Xlog:gc:"${com.wowza.wms.AppHome}/logs/gc_${com.wowza.wms.StartupDateTime}.log"
    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC

    -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime


    List of VMOptions to set (there should not be any newlines) as delineated by using switches.
    Example values:
    • -verbose

      Boolean. If you want to know when and where classes are loaded into the Java virtual machine, you can use the verbose option on the java command.
    • -Xlog:gc

      Boolean. Reports on each garbage collection event, as with -verbose:gc, but logs this data to a file. In addition to the information from verbose:gc, Xlog:gc logs each reported event preceded by the time, in seconds, since the first garbage-collection event.
       
      Note: Always use a local file system for storage of this file to avoid stalling the Java virtual machine (due to network latency). If you're working with a full file system, this file may be truncated and logging will continue in the truncated file. This option overrides verbose:gc.
    • -PrintGCDetails


      Boolean. This option will print additional details at garbage collection.
    • -PrintGCTimeStamps


      Boolean. This option prints timestamps at garbage collection.
    • -PrintHeapAtGC


      Boolean. This option prints the heap layout before and after each garbage collection.
    • -PrintGCApplicationConcurrentTime


      Boolean. This option prints the length of time that the application has been running.
    • -PrintGCApplicationStoppedTime


      Boolean. This option prints the length of time that the application has been stopped.