涛涛学习笔记之gc日志分析工具
测试环境:xp+weblogic8+jrockit
jvm调优中有一些非常实用的工具可以用来分析jvm的gc输出日志。
- HPjmeter,想必很多人都知道;
- PMAT,ibm的图形化gc分析工具;
- gcViewer,一款开源的gc图形化分析工具;
简单说一下适用感觉;
1、HPjmeter适用于hp机器上的jdk版本产生的gc日志,也适用一些ibm的jdk版本和sun的,但本次采用bea的jrockit的日志格式未能识别;
推荐一个很好的下载地址:ftp://ftp.hp.com/pub/gsy/
使用方式双击.jar文件就可以打开了,或者使用java命令含启动;
2、PMAT,ibm的图形化gc分析工具;
ibm的图形化工具和hpjmeter相似支持ibm jdk和hp的;
下载地址:
https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=AW-0JV&S_PKG=0JV?=en_US&cp=UTF-8
使用方式双击.jar文件就可以打开了,或者使用java命令含启动;
应该只是在格式上有些差别,如果你能够明白格式的差别,自己修改输出文件的格式应该也是能够吧不识别识别了。
3、gcViewer,一款开源的gc图形化分析工具;
官方网站地址:http://www.tagtraum.com/
看看官方给出的解释:
GCViewer is a free open source tool to visualize data produced by the Java VM options de>-verbose:gc de> and de>-Xloggc:<file> de>. It also calculates garbage collection related performance metrics (throughput, accumulated pauses, longest pause, etc.). This can be very useful when tuning the garbage collection of a particular application by changing generation sizes or setting the initial heap size. See here for a useful summary of garbage collection related JVM parameters. For more information on tuning garbage collection on Sun JVMs, take a look at the documentation provided by Sun .
Supported Formats
- Sun JDK 1.4/1.5 with the options de>-Xloggc:<file> [-XX:+PrintGCDetails ]de>
- Sun JDK 1.2.2/1.3.1/1.4 with the option de>-verbose:gc de>
- IBM JDK 1.3.1/1.3.0/1.2.2 with the option de>-verbose:gc de>
- IBM iSeries Classic JVM 1.4.2 with de>option -verbose:gcde>
- HP-UX JDK 1.2/1.3/1.4.x with the option de>-Xverbosegc de>
- BEA JRockit 1.4.2/1.5 with the option de>-verbose:memory de>
Best results are achieved with: de>-Xloggc:<file> -XX:+PrintGCDetails de>
可以看出它支持的jdk的格式是普遍的,基本上都支持,特别是支持BEA JRockit ;
我们来看看我测试中得到的图形界面效果图:
我 采用启动到压力运行40分钟的过程图,蓝色代表jvm堆的使用,绿色代表回收的时间线,最左边列有两个刻度,一个标记以k为单位的bytes单位还有一个 s为单位时间刻度,你可以很清楚的知道垃圾回收时间分布的情况,右面有个较小的面板你可以用来看统计情况,分别是summary、memory、 pause项。
还有一个好的用处是,可以把数据导出到文件系统生成excel可识别的文件,可以用来自定义生成图表。
菜单项由一个实时刷新功能,可以实时采集数据生成图形界面。同时可以打开多个界面对多个gc的log作分析。
用好这些工具的前提是,你必须清楚gc的工作机制,了解gc异常情况下的表现应该是怎么样的。
这种图形界面对于调优很有用,对于多种参数配置,可以比较他们的垃圾回收情况来选择谁优谁差。
续:
GC日志分析与HeapDump分析工具全图示