Admin: Memory

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
Line 15: Line 15:
  
 
The Eden memory size is configured with -Xmn128m. In general, the JVM's defaults are fine.
 
The Eden memory size is configured with -Xmn128m. In general, the JVM's defaults are fine.
 +
 +
== PermGen ==
 +
 +
The PermGen pool is an important memory heap pool used for classes and other permanent memory. If an application has a lot of classes, it's possible for this memory to be used up.
 +
 +
For restarts, the PermGen can have important memory leaks, where a restarted [[WebApp]] might not release its classes and the PermGen memory can increase. The PermGen leaks tend to be application or framework errors where a class is either stored in an incorrect environment, like saving a servlet class in a ThreadLocal or in a system object.

Revision as of 18:55, 11 September 2010


Contents

Memory Pools

Java organizes its memory into pools, depending on the memory use. The main long-term heap memory is the Tenured memory. Other memory are optimizations of the Tenured memory. Eden is new, short-term memory. Survivor is long-lived memory.

CodeCache

The CodeCache is the JVM's non-heap memory pool containing the JNI compiled Java class code.

Eden

The Eden memory pool is used by the JVM for new, short-lived memory. Free memory in the Eden can be collected in fast garbage collections.

The Eden memory size is configured with -Xmn128m. In general, the JVM's defaults are fine.

PermGen

The PermGen pool is an important memory heap pool used for classes and other permanent memory. If an application has a lot of classes, it's possible for this memory to be used up.

For restarts, the PermGen can have important memory leaks, where a restarted WebApp might not release its classes and the PermGen memory can increase. The PermGen leaks tend to be application or framework errors where a class is either stored in an incorrect environment, like saving a servlet class in a ThreadLocal or in a system object.

Personal tools