1、在 JAVA_OPTS增加 -verbose:gc -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError
2、log日志的内容类似如下: [GC [<collector>: <starting occupancy1> -> <ending occupancy1>, <pause time1> secs] <starting occupancy3> -> <ending occupancy3>, <pause time3> secs]
<collector> GC收集器的名称
<starting occupancy1> 新生代在GC前占用的内存
<ending occupancy1> 新生代在GC后占用的内存
<pause time1> 新生代局部收集时jvm暂停处理的时间
<starting occupancy3> JVM Heap 在GC前占用的内存
<ending occupancy3> JVM Heap 在GC后占用的内存
<pause time3> GC过程中jvm暂停处理的总时间
2 [Full GC [PSYoungGen: 44520K->0K(921600K)] [PSOldGen: 1871782K->1136511K(2048000K)] 1916302K->1136511K(2969600K) [PSPermGen: 80862K->80862K(262144K)], 2.5411980 secs] [Times: user=2.54 sys=0.00, real=2.54 secs]
分别代表 新生代,老生久,永久存储区 内存回收的数 A -> B 其中A表示该区回收前占内存数,B表示回收后该区占内存数。
3 YongGC :
[GC [PSYoungGen: 819200K->31529K(921600K)] 1955711K->1168040K(2969600K), 0.0410820 secs] [Times: user=0.18 sys=0.00, real=0.04 secs]
表示新生代回收的内存,以及整个YoungGC回收的内存总数