知道任何Java垃圾收集日志分析工具吗?

时间:2009-02-12 15:35:09

标签: java performance logging garbage-collection

我正在寻找一个工具或脚本,它将从我的网络应用程序中获取控制台日志,解析垃圾收集信息并以有意义的方式显示它。

我正在使用以下标志启动Sun Java 1.4.2 JVM:

-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails

日志输出如下所示:

54.736: [Full GC 54.737: [Tenured: 172798K->18092K(174784K), 2.3792658 secs] 257598K->18092K(259584K), [Perm : 20476K->20476K(20480K)], 2.4715398 secs]

如果我有一个能够直观地绘制垃圾收集趋势图的工具,那么理解几百种这类日志条目就会容易得多。

12 个答案:

答案 0 :(得分:30)

gcviewer做你想做的事。

答案 1 :(得分:15)

IBM的GC工具包正是您所要求的。

https://www.ibm.com/developerworks/java/jdk/tools/gcmv/

我不确定它是否与Sun的JVM的GC日志兼容。

答案 2 :(得分:12)

我认为有些人正在添加Java探测器,这些探测器并不真正解析垃圾收集日志,因为问题表明......

我尝试过其他人(gcviewer,gchisto,IBM),我发现用于分析GC日志的最佳工具是HPjmeter

它主要用于HP-UX JVM,但它通常也适用于Sun JVM并且做得很好。

alt text http://blog.xebia.com/wp-content/uploads/2008/09/hpjmeter-gctime.jpg

答案 3 :(得分:8)

我尝试了一个在线工具http://gceasy.io,它可以读取我的sun jdk 1.8 gc log。

答案 4 :(得分:7)

甚至比jconsole更好的是visualvm,它由Sun自由开发和分发。它有一个名为gchisto的GC分析插件,可能对您有帮助。

编辑抱歉,我没有看到您的JDK 1.4.2要求。在那种情况下,visualvm不会帮助你,唉。

答案 5 :(得分:7)

我发现使用IBM和Hotspot JVM日志并可视化它们的最强大的工具是IBM的PMAT: https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11

我发现它比IBM Support Assistant中的工具更快,并提供更多详细信息。 它正在不断更新,最后是7月和12月。

然而,使用策略CMS解析日志时似乎存在一些问题,但希望可以修复。

PrintGCStats也非常好,并且提供了很好的统计数据,但是随着时间的推移不能用于可视化,这需要一些工作。

答案 6 :(得分:5)

我使用YourKit java profiler,它可以让你测量这类东西,等等,但是使用它自己的格式而不是分析日志。它可以在Java 5下完成更多工作,但应该在1.4下工作。

答案 7 :(得分:3)

从Sun尝试VisualGC。 JDK 4和5版本可以让您清楚地了解伊甸园,世代和烫发空间的情况。你需要添加一个JAR并获得一个PID而Bob是你的叔叔。

答案 8 :(得分:3)

几年前,John Coomes(Hotspot GC小组)发布了PrintGCStats,这是一个awk脚本,用于“总结有关垃圾收集的统计数据,特别是gc暂停时间总计,平均值,最大值和标准偏差。”。该脚本的副本托管在java.net上:http://java.net/projects/printgcstats

答案 9 :(得分:2)

jconsole可以帮到你很多,但我认为它只是Java 5及更高版本。有一次我听到SUN的某个人在我们大学讲话,他说Java 6的垃圾收集器比旧的垃圾收集器要好很多,而且几乎所有时间都需要复杂的调整来处理大型应用程序。在SMP上,Java 6 GC似乎扩展得更好。

答案 10 :(得分:2)

VisualVM的gchisto插件不起作用https://gchisto.dev.java.net/

我有一个文件,其中包含jdk1.6的printgc的所有详细信息,但找不到可以阅读的工具。 以前使用jdk1.5我们使用HPjmeter它工作正常,但现在用jdk1.6它没有

尝试以下内容:用于Java垃圾收集器的IBM模型建模和分析工具 - 它无法识别该文件。 GCCollector不起作用,它继续读取文件进行分析。

答案 11 :(得分:1)

如何试用像JProbe Freeware(Eclipse插件)这样的分析工具。