所以基本上在我们的例子中,服务器神秘地关闭了,我们经常重新启动它,它开始正常工作。到目前为止,我们还没有能够建立一个模式。查看线程转储确实有帮助,但我们也想分析内存使用情况。是否可以将这些工具设置为定期运行(以便它们定期保存快照)或在检测到异常或崩溃时运行
问问题
188 次
2 回答
0
它不会产生完整的转储,但jstat
可以连续运行以定期提供内存随时间推移的汇总统计信息:
> jstat -gccause -t <JVMID> 60s
例如,将每分钟生成内存池和垃圾收集统计信息,直到您使用Ctrl-C
.
jstat
可以做的不仅仅是内存和垃圾收集。有关更多信息,请参见 jstat 手册页:
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html
于 2013-02-08T18:54:50.173 回答
0
在 cron 中运行 jmap?
另一种选择是将jdb 附加到进程。它将在未捕获的异常上停止,您可以在该状态下使用 jmap 进行堆转储。不幸的是,jdb 本身不支持进行堆转储。
于 2012-02-23T09:39:51.773 回答