分析JVM gc日志

    GC日志是一种很重要的日志,它虽然无法定位出很详细的内容,但反映出JVM整体的运行状况。以生产环境为例:在出现严重性能问题时,整个系统卡住了,我发现1分钟之内full gc是25次,当把问题解决之后,1分钟的full gc只有4次。

    如果在系统使用高峰期的时候,出现full gc的非常多,如果系统内存溢出,那分析DUMP文件就可以了。如果没有内存溢出的日志,就需要dump JVM。gc 日志就像一个风向标,引导我们做事情。

    分析GC日志,之前使用过GChisto、GCLogViewer-0.3-win,效果都不甚理想。最近发现一款Garbage Collection and Memory Visualizer (GCMV),符合我的习惯。

    有两种安装方法:

    1. eclipse下安装,打开帮助-->eclipse marketplace 搜索GCMV ,安装后切换到GCMV的视图,通过文件-->装入文件 选择gc日志,可以出结果。

    2. 安装IBM Support Assistant workbeach 4.0,可以选择JVM插件。不过在我的机器上有问题,选择插件的时候总报空指针的错null point,导致选择不了插件,无法进行下一步。

    分析的结果非常丰富,各个维度,有比较关心的基线值是:

   

全部回收 99
分配失败触发的回收数量 8273
回收之间的平均时间间隔 (毫秒) 1554666
垃圾回收暂停所用时间的比例 (%) 0.3
垃圾回收率 (MB/分钟) 5237
平均垃圾回收暂停时间 (毫秒) 1459
强制回收计数 0
非暂停时间比例 (%) 99.7

摘要: 非暂停时间比例 (%) = 99.7 分配失败触发的回收数量 = 8273 回收之间的平均时间间隔 (毫秒) = 1554666.3232323232 垃圾回收率 (MB/分钟) = 5236.80405700525 垃圾回收暂停所用时间的比例 (%) = 0.3 平均垃圾回收暂停时间 (毫秒) = 1458.8226565656576 强制回收计数 = 0 全部回收 = 99

相关文章
相关标签/搜索