Posts

Showing posts from March, 2013

Memory Utilization & Garbage Collection Analysis

Memory Utilization & Garbage Collection Analysis The goal should be to optimize garbage collection (GC) in such way that its impact on application response time or CPU usage is minimized. Monitor the utilization of different memory pools (young, survivor and old). Memory shortage is the number-one reason for the increased GC activity The young generation should be big enough to ensure that all temporary objects die there If overall memory utilization is growing continuously despite garbage collection, it is an indication of memory leak and requires heap analysis Monitor the churn rate (number of object allocation per interval) at the younger generation. The high number of young collection can cause high response time. It can cause unnecessarily copying of objects from young generation to old generation Free tools that can be used for GC analysis are: JConsole, jStat, Java VisualVM, JRockit Mission Control, verbose:gc flag of the JVM A high GC activity generally h