WildFly JVM Settings: Difference between revisions
Line 95: | Line 95: | ||
... | ... | ||
</pre> | </pre> | ||
By default, both JVM types have the same configuration, but it can be differentiated by using <tt>HOST_CONTROLLER_JAVA_OPTS</tt> and <tt>PROCESS_CONTROLLER_JAVA_OPTS</tt> environment variables. | |||
===Precedence Rules=== | ===Precedence Rules=== | ||
===Relationship between JVM Settings and Host Controller and Process Controller JVM Settings=== | ===Relationship between JVM Settings and Host Controller and Process Controller JVM Settings=== |
Revision as of 02:02, 5 April 2017
Internal
Overview
JVM settings can be declared in various server configuration files, as shown below. In domain mode, the settings declared in XML configuration files (domain.xml, host.xml) propagate to server node JVMs and they are subject to precedence rules; the process controller and host controller JVM settings are declared in domain.conf.
Configuration
Standalone Mode
Modify standalone.conf as follows:
... JAVA_OPTS="-Xms1000m -Xmx2000m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m ..." ...
Even if standalone*.xml allows for a <jvm> element, it seems it is not honored when specified. More research is needed on this.
Domain Mode
In domain mode, the settings declared in XML configuration files domain.xml and host.xml propagate to server node JVMs and they are subject to precedence rules. Process controller and host controller JVM settings are declared in domain.conf.
domain.xml
<domain ...> ... <server-groups> <server-group name="..."> <jvm java-home="..." type="SUN|IBM" env-classpath-ignored="true" debug-enabled="false" debug-options="..."> <heap size="" max-size=""/> <permgen>...</permgen> <stack>...</stack> <agent-lib>...</agent-lib> <agent-path>...</agent-path> <java-agent>...</java-agent> <jvm-options> <option name="...">....</option> ... </jvm-options> <environment-variables>...</environment-variables> <launch-command>...</launch-command> </jvm> </server-group> </server-groups> ... </server>
Example:
<jvm> <heap size="1000m" max-size="2000m"/> <jvm-options> <option value="-server"/> <option value="-XX:MetaspaceSize=256m"/> <option value="-XX:MaxMetaspaceSize=512m"/> </jvm-options> </jvm>
host.xml
host.xml allows "named" <jvm> declarations.
<host ..> ... <jvms> <jvm name="jvm-a" ...> </jvm name="jvm-b" ...> ... </jvms> ... </host>
domain.conf
Declare the JVM settings for both process controller and domain controller:
... if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true" ...
By default, both JVM types have the same configuration, but it can be differentiated by using HOST_CONTROLLER_JAVA_OPTS and PROCESS_CONTROLLER_JAVA_OPTS environment variables.