GC 日志分析工具 —— GChisto

零. 简介
《Java 性能优化权威指南》介绍了一款分析 GC 日志的离线分析工具, 不过官网上没有下载的地方, 需要自己从 SVN 上拉下来编译。 GChisto 以表格和图形化的方式展示 GC 次数、 持续时间等, 提高了分析 GC 日志的效率。


一. 实践
编译成功后, 直接 java -jar 运行起来, 把 GC 日志 .log 文件 add 到 GChisto, GChisto 加载日志可能运行比较久, 需要等待一会。

1. 导入成功, 切到 GC Pause Stats 选项卡, 可以大致看下 GC 的次数、 GC 的时间、 GC 的开销、 最大 GC 时间和最小 GC 时间等 

GC 日志分析工具 —— GChisto_第1张图片

垃圾收集的开销(Overhead)表示垃圾收集的调优程度。 一般情况, 并发垃圾收集的开销应该小于 10%, 也有可能达到 1% ~ 3%。



2. 切到 GC Pause Distribution 选项卡, 可以查看 GC 停顿的详细分布, x 轴表示垃圾收集停顿时间, y 轴表示是停顿次数。  
GC 日志分析工具 —— GChisto_第2张图片

上图可以看出有一次 remark 时间是 3.6 秒左右, 这个就值得注意下当时发生了什么, 是应用问题, 还是 JVM 参数需要调优。




3. 切换到 GC Timeline 选项卡, 可以显示整个时间线上的垃圾收集, 以便于按时间去查找应用日志(tomcat 日志等), 去了解峰值时系统发生了什么。 
GC 日志分析工具 —— GChisto_第3张图片

不过这个工具似乎没怎么维护了, 存在不少 bug, 使用过程发现识别不了 JDK 1.7 GC 日志的 Young GC, 还有一些 NullPointer 错误。 整体来说, 只能观察某些参数

你可能感兴趣的:(JVM,码字人生)