GC日志分析

Posted 伊甸一点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GC日志分析相关的知识,希望对你有一定的参考价值。

结合上篇博文(其中的Eclipse Memory Analyzer分析内存溢出)进行分析GC日志 

(1)首先,给出一个日志输出的例子:

  参数设置为:

  -XX:+PrintGCDetails -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -XX:NewSize=10M -XX:MaxNewSize=10M

  参数解释:

  -XX:+PrintGCDetails 启用日志

  -XX:-UseAdaptiveSizePolicy 禁用动态调整,使SurvivorRatio可以起作用

  -XX:SurvivorRatio=8 设置Eden:Survivior=8

  -XX:NewSize=10M -XX:MaxNewSize=10M 设置整个新生代的大小为10M

  默认垃圾收集器为:Parallel Scavenge

 (2)输出结果为:

  [GC [PSYoungGen: 4423K->320K(9216K)] 4423K->320K(58880K), 0.0011900 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 
  [Full GC (System) [PSYoungGen: 320K->0K(9216K)] [ParOldGen: 0K->222K(49664K)] 320K->222K(58880K) [PSPermGen: 2458K->2456K(21248K)], 0.0073610 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
  Heap
   PSYoungGen      total 9216K, used 491K [0x00000000ff600000, 0x0000000100000000, 0x0000000100000000)
     eden space 8192K, 6% used [0x00000000ff600000,0x00000000ff67af50,0x00000000ffe00000)
       from space 1024K, 0% used [0x00000000ffe00000,0x00000000ffe00000,0x00000000fff00000)
       to   space 1024K, 0% used [0x00000000fff00000,0x00000000fff00000,0x0000000100000000)
       ParOldGen       total 49664K, used 222K [0x00000000c5800000, 0x00000000c8880000, 0x00000000ff600000)
       object space 49664K, 0% used [0x00000000c5800000,0x00000000c58378a0,0x00000000c8880000)
       PSPermGen       total 21248K, used 2466K [0x00000000c0600000, 0x00000000c1ac0000, 0x00000000c5800000)
       object space 21248K, 11% used [0x00000000c0600000,0x00000000c0868b48,0x00000000c1ac0000)
 
 
   对照上面的图,GC日志中的PSYoungGen(PS是指Parallel Scavenge)为Eden+FromSpace,而整个YoungGeneration为Eden+FromSpace+ToSpace。
  我们设置的新生代大小为10240K,这包括9216K大小的PSYoungGen和1024K大小的ToSpace。其中,PSYoungGen中的Eden:FromSpace为8:1,
  这包括8192K的Eden和1024K的FromSpace。
 

以上是关于GC日志分析的主要内容,如果未能解决你的问题,请参考以下文章

GC日志查看和分析

GC 日志分析工具 —— GChisto

JVM-GC日志查看分析

Java GC算法——日志解读与分析(GC参数基础配置分析)

Java GC算法——日志解读与分析(GC参数基础配置分析)

Java 虚拟机原理垃圾回收算法 ( 设置 JVM 命令参数输出 GC 日志 | GC 日志输出示例 | GC 日志分析 )