【问题标题】:Can I set up profiles like jhat or jmap to take snapshots at regular intervals or whenever exception is detected我可以设置像 jhat 或 jmap 这样的配置文件以定期或在检测到异常时拍摄快照吗
【发布时间】:2012-02-18 03:30:58
【问题描述】:

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

【问题讨论】:

    标签: jmap jhat


    【解决方案1】:

    在 cron 中运行 jmap?

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

    【讨论】:

      【解决方案2】:

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

      > jstat -gccause -t <JVMID> 60s
      

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        相关资源
        最近更新 更多