Chapter 12. JVM
12.1. About JVM
12.1.1. About JVM Settings
domain.xmlconfiguration files, and determined by the domain controller components responsible for starting and stopping server processes. In a standalone server instance, the server startup processes can pass command line settings at startup. These can be declared from the command line or via the System Properties screen in the Management Console.
An important feature of the managed domain is the ability to define JVM settings at multiple levels. You can configure custom JVM settings at the host level, by server group, or by server instance. The more specialized child elements will override the parent configuration, allowing for the declaration of specific server configurations without requiring exclusions at the group or host level. This also allows the parent configuration to be inherited by the other levels until settings are either declared in the configuration files or passed at runtime.
Example 12.1. JVM settings in the domain configuration file
<server-groups> <server-group name="main-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> <server-group name="other-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> </server-groups>
main-server-groupis declaring a heap size of 64 megabytes, and a maximum heap size of 512 megabytes. Any server that belongs to this group will inherit these settings. You can change these settings for the group as a whole, by the host, or the individual server.
Example 12.2. Domain settings in the host configuration file
<servers> <server name="server-one" group="main-server-group" auto-start="true"> <jvm name="default"/> </server> <server name="server-two" group="main-server-group" auto-start="true"> <jvm name="default"> <heap size="64m" max-size="256m"/> </jvm> <socket-binding-group ref="standard-sockets" port-offset="150"/> </server> <server name="server-three" group="other-server-group" auto-start="false"> <socket-binding-group ref="standard-sockets" port-offset="250"/> </server> </servers>
server-twobelongs to the server group named
main-server-group, inheriting the JVM settings from the
defaultJVM group. In the previous example, the main heap size for
main-server-groupwas set at 512 megabytes. By declaring the lower maximum heap size of 256 megabytes,
server-twocan override the
domain.xmlsettings to fine-tune performance as desired.
The JVM settings for standalone server instances can be declared at runtime by setting the
JAVA_OPTS environment variable before starting the server. An example of setting the
JAVA_OPTS environment variable at the Linux command-line is:
[user@host bin]$ export JAVA_OPTS="-Xmx1024M"
C:\> set JAVA_OPTS="Xmx1024M"
standalone.conffile found in the
EAP_HOME/binfolder, which contains examples of options to pass to the JVM.
12.1.2. Display the JVM Status in the Management Console
Table 12.1. JVM Status Attributes
|Max||The maximum amount of memory in bytes that can be used for memory management.|
|Used||The amount of used memory in mega bytes.|
|Committed||The amount of memory in bytes that is committed for the Java virtual machine to use.|
|Init||The amount of memory in bytes that the Java virtual machine initially requests from the operating system for memory management.|
Display the JVM statusYou can view the JVM status in either the standalone server instance or a managed domain.
Display the JVM status for a standalone server instanceSelectfrom the menu on the screen.
Figure 12.1. JVM status for a standalone server instance
Display the JVM status for a managed domainSelect JVM Status from the Domain Status menu on the Runtime screen.
- The managed domain can provide visibility of all server instances in the server group, but will only allow you to view one server at a time by selecting from the server menu. To view the status of other servers in your server group, click on the drop-down box at the top left of the screen to select from the host and servers displayed in your group and click thebutton to load the results.
The status of the JVM settings for the server instance are displayed.