0

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

4

2 回答 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 回答