6.1 The importance of JVM tuning

The inclusion of the IBM Java 5 runtime environment into WebSphere Application Server V6.1 has introduced many improvements intended to enhance Java's performance on AIX. These enhancements include an entirely new runtime environment with new garbage collection algorithms; an improved Just-in-Time (JIT) compiler; the availability of class sharing among running JVMs; and better utilization of the AIX advanced performance and virtualization features. These enhancements produce greatly improved runtime performance, a significant decrease in the memory footprint of the JVM, and the availability of new options for tuning the JVM for specific purposes.

It is surprisingly common for an application to be deployed on WebSphere Application Server with incorrect runtime parameters set. There are many reasons for this:

Lack of communication between application designers and server administrators

Lack of understanding of runtime parameters

Lack of understanding of the importance of proper runtime parameter settings

Considering runtime options as an afterthought

Lack of load testing prior to deployment

Deploying an application with incorrect settings can lead to confusion and frustration when serious errors "mysteriously" appear. These errors are often fatal and may include out-of-memory errors, crashes, hangs, and so on. This scenario can result in frustration, system downtime, and lost time spent in problem determination and in unnecessary calls to technical support.

To achieve optimal application performance and to avoid being surprised by serious errors, the Java runtime environment must be tuned according to the specific application's needs. The material in this chapter instructs and guides administrators in optimizing the Java runtime for WebSphere Application Server V6.1. For instructions about tuning AIX and utilizing AIX's advanced performance and virtualization features, see Chapter 4, AIX configuration.