WildFly JVM Settings
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.