一次 JVM 分析问题

万能解决方案

  1. 模拟 JVM 问题的时候,遇到了一个问题脑壳痛
  2. 放着没有处理。
  3. 然后按流程分析,从日志开始分析原因是什么。
  4. 找到了问题原因。
  5. 结果:愿意动手,并且相信自己能做到、做好,就这么简单。

步骤

  1. 模拟一个 JVM 垃圾回收情况
  2. 执行 JVM 日志
  3. 日志分析
  4. 为什么会 FGC 呢?
  5. 1000ms 打印一次,数据不够齐全,再用 100ms 打印一次。
  6. 思考

模拟一个 JVM 垃圾回收情况

  1. 查看日志:jstat -gc PID 间隔时间 次数

执行 JVM 日志

[root@localhost jvm]# jstat -gc PID 1000
 S01M   S11M   S0128K S1128k eden8M   Eden2M    老10M       老6M     元4M   元3M                  Young          Full
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      42    0.026  44      0.046    0.073
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      44    0.028  46      0.048    0.076
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      46    0.029  48      0.050    0.079
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      48    0.030  50      0.053    0.083
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      50    0.031  52      0.055    0.086
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      52    0.032  54      0.056    0.088
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      54    0.033  56      0.058    0.091
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      56    0.034  58      0.060    0.094
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      58    0.035  60      0.062    0.097
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      60    0.037  62      0.064    0.101

日志分析

  1. Eden 使用一直是 2M 很稳定
  2. Survivor 分区一直是 128k 很稳定
  3. 元数据区一直是 3M 很稳定
  4. YGC 和 FGC 次数同步增长
  5. 很明显,是不断的在 FGC 然后带动的 YGC

为什么会 FGC 呢?

  1. 资料不足,想不通,要更加详细的日志

1000ms 打印一次,数据不够齐全,再用 100ms 打印一次。

[root@localhost jvm]# jstat -gc PID 100 50
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      88    0.058  90      0.088    0.147
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      88    0.058  90      0.088    0.147
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      88    0.058  90      0.088    0.147
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      88    0.058  90      0.088    0.147
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      88    0.058  90      0.088    0.147
1024.0 1024.0 128.0   0.0    8192.0    0.0     10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      90    0.060  92      0.090    0.150
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      92    0.061  94      0.093    0.153
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      94    0.062  96      0.094    0.155
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0  0.0   128.0   8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      96    0.063  98      0.096    0.159
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      98    0.064  100     0.098    0.162
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      98    0.064  100     0.098    0.162
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      98    0.064  100     0.098    0.162
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      98    0.064  100     0.098    0.162
1024.0 1024.0 128.0   0.0    8192.0   2048.0   10240.0     6434.0   4864.0 2903.2 512.0  313.2      98    0.064  100     0.098    0.162

思考

  1. 这个日志还是看不懂
  2. 哦,打包错了,用的其他的代码,所以日志打印内容不一样。
  3. 重点:预期结果不一样的时候,从头到尾,从尾到头。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值