GC日志详解,助你定位GC相关问题

行政求职招聘微信群 http://www.huiwenxuexiao.com/chaoliu/xinchao/3034.html

点击下方“IT牧场”,选择“设为星标”

生产环境上,或者其他要测试GC问题的环境上,一定会配置上打印GC日志的参数,便于分析GC相关的问题。

但是可能很多人配置的都不够“完美”,要么是打印的内容过少,要么是输出到控制台,要么是一个大文件被覆盖,要么是……

本文带你一步一步,配置一个完美的GC日志打印策略

打印内容

为了保留足够多的“现场证据”,最好是把GC相关的信息打印的足够完整。而且你的程序真的不差你GC时打印日志I/O消耗的那点性能

打印基本GC信息

打印GC日志的第一步,就是开启GC打印的参数了,也是最基本的参数。

-XX:+PrintGCDetails-XX:+PrintGCDateStamps打印对象分布

为了分析GC时的晋升情况和晋升导致的高暂停,不看对象年龄分布日志怎么行

-XX:+PrintTenuringDistribution

输出内容示例:

Desiredsurvivorsizebytes,newthreshold15(max15)-age1:bytes,total-age2:bytes,total-age3:bytes,total-age4:bytes,total-age5:bytes,total-age6:bytes,total-age7:bytes,total-age8:bytes,total-age9:bytes,total-age10:bytes,total-age11:bytes,total-age12:bytes,total-age13:bytes,total-age14:bytes,total-age15:bytes,totalGC后打印堆数据

每次发生GC时,对比一下GC前后的堆内存情况,更直观

-XX:+PrintHeapAtGC

输出内容示例:

{HeapbeforeGCinvocations=0(full0):garbage-firstheaptotalK,usedK[0x,0x081901f40,0x0c000)regionsizeK,6young(K),0survivors(0K)MetaspaceusedK,capacityK,

转载请注明地址:http://www.shiquanren.net/hzzz/hzzz/25532.html


  • 上一篇文章:
  • 下一篇文章: 没有了
  • 公司简介 广告合作 发布优势 服务条款 隐私保护 网站地图 版权声明