Heap Sizing

Heap sizing is another factor that, together with garbage collection and memory usage, influences PPM performance. You can tune heap usage to reduce the number of full garbage collection events that occur during any given time period. In most cases, however, the gains realized are not sufficient to justify the effort required to do this.

Full garbage collections are a normal, regularly-occurring JVM event and are not in and of themselves indicative of a performance problem. If you suspect that full garbage collection events are taking too much time, then investigate the issue and resolve it, if necessary.

To control how frequently full garbage collection occurs, maintain a static amount of memory capacity on the heap for a given workload. Make sure that the amount of memory you allocate to the heap is sufficient to avoid a series of closely-spaced full garbage collections. (This requires regular monitoring of memory usage on the JVM.) Distribute users across additional PPM Servers or increase the amount allocated to heap, as necessary.

Note: Memory management by JVMs is multifaceted. We recommend that you become familiar with Sun's Java site, particularly with the garbage collection topics.

The amount of memory allocated to the heap by default for a PPM Server is defined in application configuration files.

PPM provides components that you can use to configure your Java process memory settings. We recommend starting with the following settings:

Component

Setting

Heap

1280 MB or more

Perm space

(permanent generation heap)

256 MB

You can increase or decrease these settings to suit your needs. Because memory settings depend on the application server platform and available physical memory on the machine, we recommend that you test the settings in your system to see what provides the best performance for you.

For example, if you have a single PPM application on a Windows server that has at least 2 GB of free RAM available for PPM, then use the following settings:

com.kintana.core.server.SERVER_MAX_HEAP_SIZE=1280m

com.kintana.core.server.SERVER_INIT_HEAP_SIZE=1280m

com.kintana.core.server.SERVER_MAX_PERM_SIZE=256m

To scale PPM as you add users and load to your system, configure server clusters and introduce additional PPM nodes (instead of simply increasing the heap size).

Note: For detailed information about heap sizing and adding nodes to a server cluster, see the Installation and Administration Guide.