Java Virtual Machine: IBM® parameters tuning
You can set Java™ Virtual Machine (JVM) parameters that reduce fragmentation of the Java heap and can help improve performance.
Fragmentation of the Java heap
can occur as the number of objects that are processed increases. There
are a number of parameters that you can set to help reduce fragmentation
in the heap.
- A kCluster is an area of storage that is used exclusively for
class blocks. It is large enough to hold 1280 entries. Each class
block is 256 bytes long. This default value is usually too small and
can lead to fragmentation of the heap. Set the kCluster parameter, -Xk,
as follows to help reduce fragmentation of the heap. These are starting
values and might have to be tuned in your environment. An analysis
of a heap dump would be best to determine the ideal size.
- Topology: -Xk8300
- EventsCore: -Xk3500
- DiscoverAdmin: -Xk3200
- Proxy: -Xk5700
- Discover: -Xk3700
Implement these changes in the collation.properties file by adding entries in the JVM Vendor Specific Settings section. For example, to implement these changes for the Topology server, add the following line:com.collation.Topology.jvmargs.ibm=-Xk8300
- Another option for fragmentation issues is to allocate some space
specifically for large objects; > 64K. Use the -Xloratio parameter.
For example:
- -Xloratio0.2
This command reserves x% of the active Java heap (not x% of -Xmx but x% of the current size of the Java heap), to the allocation of large objects (≥64 KB) only. If changed, -Xmx should be changed to make sure that you do not reduce the size of the small object area. An analysis of a heap dump would be best to determine the ideal setting for this parameter.
There are a few additional parameters that can be set that affect Java performance. To change an existing JVM option to a
different value, edit one of the following files:
- For a domain server in TADDM 7.3.0, the $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/cmdb-context.xml file.
- For a domain server in TADDM 7.3.0.1, and later, the $COLLATION_HOME/apps/ROOT/WEB-INF/cmdb-context.xml file.
- For a synchronization server in TADDM 7.3.0, the $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/ecmdb-context.xml file.
- For a synchronization server in TADDM 7.3.0.1, and later, the $COLLATION_HOME/apps/ROOT/WEB-INF/ecmdb-context.xml file.
- For a discovery server in TADDM 7.3.0, the $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/discovery-server-context.xml file.
- For a discovery server in TADDM 7.3.0.1, and later, the $COLLATION_HOME/apps/ROOT/WEB-INF/discovery-server-context.xml file.
- For a storage server in TADDM 7.3.0, the $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/storage-server-context.xml file.
- For a storage server in TADDM 7.3.0.1, and later, the $COLLATION_HOME/apps/ROOT/WEB-INF/storage-server-context.xml file.
To edit one of these files to change the settings for
one of the TADDM services, first find the service in the file. The
following example shows the beginning of a service definition in the
XML file:
<bean id="Discover"
class="com.collation.platform.service.ServiceLifecycle" init-method="start"
destroy-method="stop">
<property name="serviceName">
<value>Discover</value>
</property>
Within the definition, there are some elements
and attributes that control the JVM arguments. For example:
<property name="jvmArgs">
<value>-Xms8M;-Xmx512M;
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider
</value>
</property>
The JVM arguments can be set as a
semicolon separated list in the following element:
<property name="jvmArgs"><value>
You
can also modify the JVM properties that are in the collation.properties file.
Those properties can have one of the following forms:
- com.collation.JVM.jvmargs.VENDOR
- Such property is added to the values that are read from the *-config.xml file.
- com.collation.jvmargs.VENDOR
- Such property is added to all TADDM JVMs.
- com.collation.JVM.jvmargs
- Such property overwrites all the values that are specified in the *-config.xml file.
- JVM is Proxy, Topology, EventsCore, ExcmdbCore, DiscoverAdmin, StorageService, DiscoveryService
- VENDOR is ibm or sun