JVM-GC日志分析
2019-06-22 本文已影响0人
云天河_
全量GC日志
CommandLine flags: -XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
0.225: [GC (Allocation Failure) [PSYoungGen: 5632K->488K(6144K)] 5632K->3737K(19968K), 0.0120091 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
0.241: [GC (Allocation Failure) [PSYoungGen: 6096K->504K(6144K)] 9345K->8376K(19968K), 0.0108122 secs] [Times: user=0.05 sys=0.00, real=0.01 secs]
0.256: [Full GC (Ergonomics) [PSYoungGen: 6136K->0K(6144K)] [ParOldGen: 11037K->12952K(13824K)] 17173K->12952K(19968K), [Metaspace: 3375K->3375K(1056768K)], 0.3337490 secs] [Times: user=0.50 sys=0.00, real=0.33 secs]
0.591: [Full GC (Ergonomics) [PSYoungGen: 3583K->3001K(6144K)] [ParOldGen: 12952K->13464K(13824K)] 16536K->16465K(19968K), [Metaspace: 3375K->3375K(1056768K)], 0.2262367 secs] [Times: user=0.44 sys=0.00, real=0.23 secs]
0.817: [Full GC (Allocation Failure) [PSYoungGen: 3001K->3001K(6144K)] [ParOldGen: 13464K->13435K(13824K)] 16465K->16436K(19968K), [Metaspace: 3375K->3375K(1056768K)], 0.1797829 secs] [Times: user=0.51 sys=0.00, real=0.18 secs]
分段分析(一)
0.225: [GC (Allocation Failure) [PSYoungGen: 5632K->488K(6144K)] 5632K->3737K(19968K),
0.0120091 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
- GC发生时间
- GC 或 Full GC 表示垃圾收集器停顿类型,新生代GC还是老年代GC
- PSYoungGen 表示GC发生区域,表示为跟垃圾收集器名字相关 (PSYoungGen 表示为新生代Parallel Scavenge 收集器)
- 5632K->488K(6144K) GC前后该内存区域已使用的容量及总容量
- 5632K->3737K(19968K) GC前后JAVA堆已使用的容量
- 0.0120091 secs 该内存区域GC所占用的时间
7.Times: user=0.00 sys=0.00, real=0.01 secs
user,用户态消耗CPU时间
sys,内核态消耗的CPU时间
real,操作从开始到结束所经过的墙钟时间 (CPU时间与墙钟时间区别,墙钟时间包括各种非运算的等待耗时,例如:等待磁盘I/O,等待线程阻塞,而CPU不包括这些耗时)
多CPU或多核情况,多线程操作会叠加时间,所以 user,sys 可能会超过 real 时间。 - Allocation Failure 引起垃圾回收的原因. 本次GC是因为年轻代中没有任何合适的区域能够存放需要分配的数据结构而触发的
- Ergonomics 表示开启了 GC自适应的调节策略