JVM-GC日志分析

全量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] 
  1. GC发生时间
  2. GC 或 Full GC 表示垃圾收集器停顿类型,新生代GC还是老年代GC
  3. PSYoungGen 表示GC发生区域,表示为跟垃圾收集器名字相关 (PSYoungGen 表示为新生代Parallel Scavenge 收集器)
  4. 5632K->488K(6144K) GC前后该内存区域已使用的容量及总容量
  5. 5632K->3737K(19968K) GC前后JAVA堆已使用的容量
  6. 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 时间。
  7. Allocation Failure 引起垃圾回收的原因. 本次GC是因为年轻代中没有任何合适的区域能够存放需要分配的数据结构而触发的
  8. Ergonomics 表示开启了 GC自适应的调节策略
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。但虚拟机设计者为了...
    HRocky阅读 633评论 0 1
  • 垃圾回收算法具体实现 翻译原文 => plumbr Java GC handbook 前文参见: Java垃圾回收...
    foxracle阅读 3,038评论 0 15
  • 声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87 1、J...
    唐影若凡阅读 1,379评论 0 6
  • 哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何...
    Winterfell_Z阅读 423评论 0 1
  • 原文阅读 前言 这段时间懈怠了,罪过! 最近看到有同事也开始用上了微信公众号写博客了,挺好的~给他们点赞,这博客我...
    码农戏码阅读 6,195评论 2 31

友情链接更多精彩内容