JBOSS - JVM Memory Heap and Garbage Collector

advertisement
J2SE 1.5 : Memory Heap and
Garbage Collector
Objectives



You will be able to understand the JVM
Memory Heap
You will be able to know what the Garbage
Collector do
You will be able to understand the impact of
GC on J2EE application performance
JVM Object Garbage Collection




GC shields the developer from the
complexity of memory allocation and
garbage collection
GC is one of the principal bottleneck of J2EE
applications
OutOfMemoryExceptions
Memory Leak
Generations
Generations
Generations
If the garbage collector has become a
bottleneck, you may wish to customize
the generation sizes. Check the verbose
garbage collector output, and then
explore the sensitivity of your individual
performance metric to the garbage
collector parameters.
Garbage Collection Schemes
Throughput Collector

The Throughput Collector is selected by the
default if the JVM is runinng in server mode

Can be enabled using the command line flag
-XX:+UseParallelGC
Throughput Collector
Performance Consideration


Throughput: percentage of total time not
spent in garbage collection
Pauses: the times when an application
appears unresponsive because garbage
collection is occurring
Measurement: Command Line






-verbose:gc
-XX:PrintGCDetails
-XX:PrintGCTimeStamp
-XX:+PrintTenuringDistribution
-XX:PrintHeapAtGC
-Xloggc:<filename>
Measurement : -verbose:gc
Measurement: -XX:PrintGCDetails
Measurement: PrintHeapAtGC
Measurement: visualgc
Measurement: JConsole
Sizing Generations
Sizing the Generations







-Xms<size>
-Xmx<size>
-XX:NewSize=<size>
-XX:MaxNewSize=<size>
-XX:MaxPermSize=<size>
-XX:+UseTLAB
-XX:MaxTenuredThreshhold=32
Sizing the Generations
JAVA_OPTS=$JAVA_OPTS
-Xms1200m –Xmx1200m
–XX:NewSize=400M
–XX:MaxNewSize=400M
–XX:SurvivorRatio=32
–XX:+UseTLAB –XX:TLABSize=64K
Download