行政求职招聘微信群 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