Managing Memory and Garbage Collection

Although applications can explicitly invoke GC with the System.gc() method, doing so is a bad idea since this forces major collections, and inhibits scalability on large systems. It is best to disable explicit GC by using the flag -XX:+DisableExplicitGC.

The Enterprise Server uses RMI in the Administration module for monitoring. Garbage cannot be collected in RMI-based distributed applications without occasional local collections, so RMI forces a periodic full collection. Control the frequency of these collections with the property -sun.rmi.dgc.client.gcInterval. For example, - java -Dsun.rmi.dgc.client.gcInterval=3600000 specifies explicit collection once per hour instead of the default rate of once per minute.

To specify the attributes for the Java virtual machine, use the Admin Console and set the property under config-name> JVM settings (JVM options).

Tuning the Java Heap

This section discusses topics related to tuning the Java Heap for performance.

“Guidelines for Java Heap Sizing” on page 87

“Heap Tuning Parameters” on page 88

Guidelines for Java Heap Sizing

Maximum heap size depends on maximum address space per process. The following table shows the maximum per-process address values for various platforms:

TABLE 4–1Maximum Address Space Per Process

Operating System

Maximum Address Space

 

Per Process

 

 

Redhat Linux 32 bit

2 GB

 

 

Redhat Linux 64 bit

3 GB

 

 

Windows 98/2000/NT/Me/XP

2 GB

 

 

Solaris x86 (32 bit)

4 GB

 

 

Solaris 32 bit

4 GB

 

 

Solaris 64 bit

Terabytes

 

 

Maximum heap space is always smaller than maximum address space per process, because the process also needs space for stack, libraries, and so on. To determine the maximum heap space that can be allocated, use a profiling tool to examine the way memory is used. Gauge the maximum stack space the process uses and the amount of memory taken up libraries and other

Chapter 4 • Tuning the Java Runtime System

87

Page 87
Image 87
Sun Microsystems 820434310 manual Tuning the Java Heap, Guidelines for Java Heap Sizing, 1Maximum Address Space Per Process