WildFly and Garbage Collection Logging
External
- How to enable Garbage Collection (GC) logging in EAP 6 domain mode https://access.redhat.com/solutions/269023
- Preventing GC log file overwrites upon restart in domain mode https://access.redhat.com/solutions/1325293
- How to rotate gc log file configured in domain mode in EAP 6? https://access.redhat.com/solutions/1132613
Internal
Overview
GC logging is enabled by default for standalone mode (to verify form which version on). It generates output to $JBOSS_HOME/standalone/log/gc.log.<digit>. The system uses log rotation with the number of log files limited to 5, and the size of each file limited to 3 MB.
Enabling GC Logging in Standalone Mode
TODO.
Enabling GC Logging in Domain Mode
Server Node
The GC logging can be enabled for a specific server node, or generically, across the server group.
To enable GC logging for just one server node, modify the corresponding <jvm> declaration in the host.xml file.
To enable GC logging for an entire server group, edit the <ivm-options> section corresponding to the <jvm> configuration specified for the server group, in domain.xml.
In both cases, add the following JVM options:
<jvm-options> <option value="-verbose:gc"/> <option value="-Xloggc:${jboss.server.log.dir}/gc.log"/> <option value="-XX:+PrintGCDetails"/> <option value="-XX:+PrintGCDateStamps"/> </jvm-options>
Option values cannot contain system properties, they cannot be resolved:- java.lang.IllegalStateException: WFLYCTL0211: Cannot resolve expression '-Xloggc:/opt/jdg/domain/servers/${jboss.server.name}/log/gc.log'
Log File Path Specification
Option values cannot contain system property declarations, so the the paths can only be specified generically (in the server group) if the directory layout is homogeneous across the whole server group.
In case the server names are different, the GC paths can be specified in individual, host specific, host.xml.
Host Controller
TODO.