JVM tuning is important for IBM ODM (Operational Decision Management) because Decision Server Rules and Decision Server Events are both Java Platform, Enterprise Edition (Java EE) applications that run on WebSphere Application Server. Optimal performance is, therefore, dependent upon the correct tuning of Decision Server, WebSphere Application Server, and the underlying JVM.

Two key aspects of JVM tuning are the Garbage Collection Policy and the JVM heap size.

Garbage Collection Policy

For more information about the garbage collection policy in the IBM WebSphere Application Server, refer here.

Java Heap Size

The Java heap is an area of memory where objects used in a Java program are allocated.

  1. If the Java heap is too small, then garbage collection will occur too frequently, consuming a significant number of cycles reanalyzing the heap.
  2. Conversely, if the heap is too large, long pause times will occur each time the heap is analyzed and garbage collected (unless you are using the Balanced Garbage Collection policy).

Hence, care must be taken to ensure that the chosen heap size does not cause paging. Paging can occur if there is insufficient RAM to support the heap size in addition to the other processes running on the system. As a result, performance will be significantly degraded because data must be continually written and read from disk rather than main memory.

It is always good to use the preferred JVM setting in order to maintain the performance of the IBM ODM.


Preferred JVM Settings for ODM

The default, Generational garbage collection policy, is the preferred policy for most Operational Decision Management applications and is tuned with three key properties. Those properties are minimum heap size, maximum heap size, and nursery size (the nursery must be smaller than the minimum heap size). The optimal configuration will depend on the nature of the workload and the available memory.

For 32-bit JVM

  • Initial Heap Size : 1280 MB
  • Maximum Heap Size : 1280 MB
  • Generic JVM arguments : -Xgcpolicy:gencon -Xmn1024M

For 64-bit JVM

  • Initial Heap Size : 4096 MB
  • Maximum Heap Size : 4096 MB
  • Generic JVM arguments : -Xgcpolicy:gencon -Xmn2048M

_**Note: **__The first two parameters set the initial and maximum heap size. The third parameter sets the generational garbage collection policy and the size of the nursery heap. The nursery is used for short-lived objects; the remainder of the heap will be used for longer-lived objects. _

Setting the JVM parameter from WebSphere Application Server Admin Console

Right click on the Server and select run as Administrative Console, then select as follows.

Application Servers -> server 1 -> Java and Process Management -> Process Definition -> Java Virtual Machine.

ODM - WebSphere Application Server console for a 64-bit JVM<figcaption id="caption-attachment-1296" class="wp-caption-text">WebSphere Application Server console
for a 64-bit JVM</figcaption></figure>

These are all the important aspects that must be followed for tuning the JVM in order to tune the performance of the IBM ODM. Happy Exploring! Happy Learning!!