因此,基本上在我们的情况下,服务器神秘地关闭,我们经常重新启动它,它开始正常工作。到目前为止,我们还不能建立一个模式。查看线程转储确实有帮助,但我们也想分析内存使用情况。是否可以将这些工具设置为定期运行(以便它们以定期间隔保存快照),或者在检测到异常或崩溃时运行
发布于 2012-02-23 17:39:52
在cron中运行jmap?
另一种选择是附加jdb to the process。它将在未捕获异常时停止,您可以在该状态下使用jmap进行堆转储。不幸的是,jdb本身不支持接受堆转储。
发布于 2013-02-09 02:54:50
它不会生成完整转储,但可以连续运行jstat,以定期提供一段时间内内存的汇总统计信息:
> jstat -gccause -t <JVMID> 60s例如,将每分钟生成内存池和垃圾收集统计信息,直到您使用Ctrl-C杀死它。
jstat可以做比内存和垃圾收集更多的事情。有关详细信息,请参阅jstat手册页:
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html
https://stackoverflow.com/questions/8994402
复制相似问题