2012-01-12 29 views

回答

1

您可以使用包含在JDK中的jconsole工具。或者当你运行一个Java应用程序时,你可以使用参数“-verbose:gc”。

2

我认为分析垃圾收集器日志最有效的方法是查看输出本身。我们的生产服务器都使用并发标记运行清除收集和我有日志与选项-Xloggc:$GCLOGFILE -XX:+PrintGCDetails运行,如果环境过程中遇到问题我

  1. 首先检查全部GC的量grepping为“全GC”和
  2. 检查CMS的数量和频率,并在收集阶段查找错误消息(通常以“失败...”开头)。

我通常还会查看线程列表并检查垃圾收集器消耗的CPU时间量。我用-p <java-pid>参数运行顶部,然后按下“H”,这样可以看到消耗最多cpu时间的pid。然后可以将它与线程转储进行匹配,以查看gc线程是否是最耗时的线程。每个线程都有一个显示在线程转储中的pid,该转储是十六进制的,可以匹配顶部的pid。

查看GC消耗的CPU时间并将其与日志输出相匹配非常重要。我多次尝试GCViewer,但从GC-Data的可视化显示中没有真正获得有用的提示。

0

我认为你可以使用选项登录GC活动在日志文件:

-verbose:GC -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails -Xloggc:gc.log

您可以利用此记录软件为HPJmeter