HA Performance Options
There are a number of options which control the flow of data between nodes in a multi-box cluster, and which you can configure to improve performance or stability.
Load Balancer Transaction Data
The timeout for removing transaction data from the cache can be configured by adding the following configuration properties to the LBs:
- transaction-data-expiry
The time to wait for a transaction to complete before removing it from the cache (default value 90).
- transaction-data-expiry-time-units
The time units in which the previous value is expressed (default value MINUTES). Valid values are:
-
DAYS
-
HOURS
-
MINUTES
-
SECONDS
-
MILLISECONDS
-
MICROSECONDS and NANOSECONDS will be accepted, but will be rounded down to the nearest millisecond
Values are not case sensitive.
To add the values to the LBs:
-
Launch the Management Console - see the Starting the Management Console section in the Management Interfaces article.
-
From the top right menu, select Profiles.
-
From the top left menu, select the lb profile.
-
In the left hand menu, expand Subsystems and Load Balancer, and select Configuration.
-
Select the Properties navigation tab.
-
Click Add to bring up the Create Load Balancer Property dialog:
-
Enter the Name and Value fields for the transaction-data-expiry property.
-
Click Save.
-
Repeat the above for the transaction-data-expiry-time-units property, if you did not enter the transaction-data-expiry value in minutes.
-
Restart the LB to pick up the changes.
Application Server Failure Detection Timeout
FAS uses JGroups for failure detection. You can configure the time after which a node is considered to be unavailable by modifying values in the JGroups stacks:
- timeout
The time to wait for a node to respond to a heartbeat ping in milliseconds (default value 2000).
- max_tries
The number of times to retry connecting to a node before deciding it is unavailable (default value 4).
Do this by modifying the values under the <FD>
element for the appropriate JGroups stack in the domain.xml file (udp or tcp for the profile in use), which is in the <install_dir>/domain/configuration
directory:
-
Open the domain.xml file in a text editor.
-
Look for a line like:
<subsystem xmlns="urn:jboss:domain:jgroups:1.1" default-stack="tcp">
- Inside the
<subsystem>
element above, look for elements like:
<stack name="udp">
or
<stack name="tcp">
as required.
- Inside the
<stack>
element, look for:
<protocol type="FD">
- Inside the
<protocol>
element, modify the values of the<property>
elements:
<property name="timeout">2000</property>
<property name="max\_tries">4</property>
as required.
-
Save the file.
-
Restart FAS.
JVM Options
There are a number of JVM settings which you can edit to improve FAS performance. For example, you can change the maximum heap size or the maximum permgen size (or metaspace size in Java 1.8 or higher).
For ASs and LBs in a development environment, the default JVM parameters usually work well. Increasing the AS heap size to 2048m is usually more than sufficient for most co-hosted application deployments. If the AS process requires more than 2048M, we recommend a 64-bit system.
For LB processes, the memory allocated to the JVM can be smaller than that of the ASs.
To configure the LB JVM parameters independently of the AS settings, configure the JVM settings at the server process level; see the Editing JVM Settings at the Server Process Level section in this article. If you want the JVM settings to be the same for both ASs and LBs, you can configure them at the host level; see the Editing JVM Settings at the Host Level section in this article.
Editing JVM Settings at the Host Level
-
Launch the Management Console - see the Starting the Management Console section in the Management Interfaces article.
-
From the top right menu, select Server.
-
From the top left menu, select the host.
-
From the menu on the left, expand Host Settings and select JVM Configuration:
-
If there is more than one JVM configuration, select the one you wish to change from the Available JVM Configurations section.
-
Click the Edit button in the Selection section.
-
Change the options by editing the fields:
Note: The Permgen Size and Max Permgen Size fields are only relevant when using a Java runtime version less than 1.8. Newer versions of Java have replaced the PermGen space with MetaSpace, which can be configured by adding one or both of the following options to the JVM Options field:
\-XX:MetaspaceSize=<nnn>
and
\-XX:MaxMetaspaceSize=<nnn>
where <nnn>
is a size expressed in GB, MB, or KB, and suffixed by the appropriate letter (e.g. 32g, 256M).
-
Click Save.
-
Restart the FAS host for the changes to take effect.
Editing JVM Settings at the Server Process Level
-
Launch the Management Console - see the Starting the Management Console section in the Management Interfaces article.
-
From the top right menu, select Server.
-
From the top left menu, select the host.
-
From the menu on the left, expand Server and select Server Configuration.
-
Select the configuration you want to change from the Available Server Configurations section, and click on the JVM Configuration tab beneath:
-
Click the Edit button.
-
Change the options by editing the fields:
Note: The Permgen Size and Max Permgen Size fields are only relevant when using a Java runtime version less than 1.8. Newer versions of Java have replaced the PermGen space with MetaSpace, which can be configured by adding one or both of the following options to the JVM Options field:
\-XX:MetaspaceSize=<nnn>
and
\-XX:MaxMetaspaceSize=<nnn>
where <nnn>
is a size expressed in GB, MB, or KB, and suffixed by the appropriate letter (e.g. 32g, 256M).
-
Click Save.
-
Restart the server process for the changes to take effect.
Configuring Garbage Collection
Fusion Application Server is configured to use G1 garbage collection for all processes. The configuration options for G1 are stored in the domain.xml file, inside the <jvm-options>
element. There is a separate set for each server group:
<jvm-options>
<option value="-server"/>
<option value="-XX:+UseG1GC"/>
<option value="-XX:MaxGCPauseMillis=50"/>
<option value="-XX:+HeapDumpOnOutOfMemoryError"/>
<option value="-XX:HeapDumpPath=./heapdump\_as.hprof"/>
<option value="-XX:MetaspaceSize=256m"/>
<option value="-XX:MaxMetaspaceSize=256m"/>
</jvm-options>
You can change these options by editing the domain.xml file directly, or from the Management Console:
-
Launch the Management Console - see the Starting the Management Console section in the Management Interfaces article.
-
From the top right menu, select Server.
-
From the top left menu, select the host.
-
From the menu on the left, expand Server and select Server Groups.
-
In the Available Group Configurations section, select the server group you wish to change the garbage collection options for, and click the JVM Configuration tab below.
-
Click the Edit button.
-
Add or change options in the JVM Options field:
For instance, you might wish to change the value of the -XX:MaxGCPauseMillis setting; this setting controls the maximum time for a pause while garbage collection takes place.
- Restart the affected server processes (ASs if you have changed the main-server-group, LBs for the lb-server-group) for the changes to take effect.
There are a number of other garbage collection options that can be configured but are not included in the domain.xml file by default. See the Oracle documentation at http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/ for details of these options. If you are changing several options on several server groups, you might find it more convenient to edit the domain.xml file directly, and restart all the FAS nodes.
Comments
0 comments
Please sign in to leave a comment.