Skip Headers
Oracle® Fusion Middleware Enterprise Deployment Guide for Oracle WebCenter Interaction
10g Release 4 (10.3.3.0.0)

Part Number E26810-01
Go to Documentation Home
Home
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

9 Performance Tuning

This chapter details the process of tuning application servers and standalone Oracle WebCenter components to the needs of your Oracle WebCenter deployment.

The standalone Oracle WebCenter components are:

The standalone components installed with Oracle WebCenter Interaction are:

Tuning a Java Application Server or Standalone Oracle WebCenter Product

For Java application servers and standalone Oracle WebCenter products, tuning is a matter of adjusting various Java Virtual Machine (JVM) settings to optimize garbage collection. Oracle provides a comprehensive document on this subject, Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine, which you can find at http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html.

The following provides a brief background on the garbage collection process and a detailed, Oracle WebCenter focused process for tuning JVM garbage collection.

Garbage Collection Concepts

Garbage collection is the process the JVM undergoes to remove unused objects from memory. The following description of the garbage collection process is simplified for the purpose of this guide.

The JVM stores objects in two sections of the heap: the young generation and the tenured generation. The young generation is where objects are first created and provides the quickest, least CPU intensive access to objects. When the young generation fills, older active objects are transferred to the larger tenured generation. Objects in the tenured generation are more CPU intensive to access than those in the young generation.

The JVM undertakes two types of garbage collection. The minor collection runs when the young generation fills. It clears garbage objects and copies surviving objects to the tenured generation. The major collection runs when the tenured generation fills. The minor collection is significantly less CPU-intensive than the major collection.

Garbage Collection Logs

In order to analyze garbage collection impact on application server performance, a garbage collection log needs to be collected. The process is:

  1. Enable garbage collection logging in the JVM. This is done in different places for each of the supported application servers and standalone Oracle WebCenter products. For details on enabling garbage collection logging, see Appendix A, "Java Virtual Machine Configuration."

  2. Restart the application service to start logging garbage collection memory usage.

  3. Run logging garbage collection until the problem occurs. If the problem is continuous, collect a sample of approximately 24 hours of data.

    Note:

    Every time the application server is restarted, the garbage collection log is overwritten. It is important to turn off automatic restarting of services, especially if you are investigating an issue that yields a server crash.

Analyzing the Garbage Collection Log

Tagtraum industries (http://tagtraum.com) provides a free utility, gcviewer, for analyzing garbage collection logs generated by the JVM. Load the garbage collection log into gcviewer and determine which issue is occurring based on the descriptions in Table 9-1.

Table 9-1 Garbage Collection Performance Issues

Issue Symptoms in Garbage Collection Log Impact of the Issue

Insufficient total (heap) memory allocated

Memory usage trends upwards and reaches the top of the total memory allocated.

Reduces the performance or potentially crashes the Oracle WebCenter product.

Excessive total (heap) memory allocated

Memory usage peaks much lower than total memory allocated.

Can cause a slowdown across all applications on the server. The application server or Oracle WebCenter product is taking up too much of the system memory.

Insufficient young generation memory allocated

Sawtoothed memory usage.

Reduces the performance of the Oracle WebCenter product. This represents excessive minor garbage collector runs, which increases the number of objects in the tenured generation. Objects in the tenured generation are more resource intensive when called.


Resolving Garbage Collection Performance Issues

Resolving the issues described in Analyzing the Garbage Collection Log, is a matter of adjusting the JVM memory settings and reanalyzing the garbage collection log. Table 9-1 shows what memory settings to adjust for each issue. For details on how to adjust these settings for each supported application server and standalone Oracle WebCenter product, see Appendix A, "Java Virtual Machine Configuration."

Table 9-2 Garbage Collection Performance Issue Resolution

Issue Resolution JVM Memory Parameter

Insufficient total (heap) memory allocated

Increase total heap memory allocation until memory usage stays reasonably below total memory.

Increase -Xmx

Excessive total (heap) memory allocated

Decrease total heap memory allocation until memory usage is reasonably, but not excessively, below total memory.

Decrease -Xmx

Insufficient young generation memory allocated

Increase young generation memory allocation until the memory usage trend is horizontal.

Adjust -XX:NewRatio