我可以设置像jhat或jmap这样的配置文件,以便定期或在检测到异常时拍摄快照吗



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

在cron中运行jmap?

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

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

> jstat -gccause -t <JVMID> 60s

例如,它将每分钟生成内存池和垃圾收集统计信息,直到您用Ctrl-C将其杀死。

jstat可以做的远不止内存和垃圾收集。有关更多信息,请参阅jstat手册页:

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

相关内容

  • 没有找到相关文章