我是否可以设置jhat或jmap等配置文件以定期拍摄快照或在检测到异常时拍摄快照

时间:2012-01-24 21:25:30

标签: jmap jhat

所以基本上在我们的情况下,服务器神秘地下降,我们经常重启它,它开始工作正常。直到现在我们还没能建立模式。查看线程转储确实有帮助,但我们也想分析内存使用情况。这些工具是否可以设置为定期运行(因此它们会定期保存快照)或者每当检测到异常或崩溃时

2 个答案:

答案 0 :(得分:0)

在cron中运行jmap?

另一种选择是附加jdb to the process。它将在未捕获的异常上停止,您可以在该状态下使用jmap进行堆转储。不幸的是,jdb本身不支持进行堆转储。

答案 1 :(得分:0)

它不会产生完整的转储,但可以连续运行jstat以定期提供内存的sumamry统计信息:

> jstat -gccause -t <JVMID> 60s
例如,

将每分钟生成内存池和垃圾收集统计信息,直到您使用Ctrl-C将其终止。

jstat可以比内存和垃圾收集做更多的事情。有关更多信息,请参见jstat联机帮助页:

http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html