WildFly and Garbage Collection Logging: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 36: Line 36:
<jvm-options>
<jvm-options>
     <option value="-verbose:gc"/>
     <option value="-verbose:gc"/>
     <option value="-Xloggc:/path/to/log/Server1GC.log"/>
     <option value="-Xloggc:/opt/jdg/domain/servers/server/log/gc.log"/>
     <option value="-XX:+PrintGCDetails"/>
     <option value="-XX:+PrintGCDetails"/>
     <option value="-XX:+PrintGCDateStamps"/>
     <option value="-XX:+PrintGCDateStamps"/>
</jvm-options>
</jvm-options>
</pre>
<blockquote style="background-color: Gold; border: solid thin Goldenrod;">
:<br>Option values cannot contain system properties, they cannot be resolved:
: <tt>java.lang.IllegalStateException: WFLYCTL0211: Cannot resolve expression '-Xloggc:/opt/jdg/domain/servers/${jboss.server.name}/log/gc.log'</tt><br><br>
</blockquote>
===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.
One solution that works well in case there's just a single server node per host is to create a symbolic link /opt/eap/domain/servers/server -> /opt/eap/domain/servers/<server-name>, and then use:
<pre>
[...] -Xloggc:/opt/eap/domain/servers/server/log/gc.log [...]
</pre>
</pre>


==Host Controller==
==Host Controller==
<font color=red>TODO</font>.

Latest revision as of 17:43, 1 November 2016

External

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:/opt/jdg/domain/servers/server/log/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.

One solution that works well in case there's just a single server node per host is to create a symbolic link /opt/eap/domain/servers/server -> /opt/eap/domain/servers/<server-name>, and then use:

[...] -Xloggc:/opt/eap/domain/servers/server/log/gc.log [...]

Host Controller

TODO.