【问题标题】:Java kill 3 thread dump output redirectJava kill 3 线程转储输出重定向
【发布时间】:2015-11-29 19:03:01
【问题描述】:

是否可以重定向kill 3 <java_pid>线程转储输出?

我在服务器上有很多行 (>500mb) 的大型 system_out.log 文件,很难解析和查找转储。

【问题讨论】:

    标签: java terminal thread-dump


    【解决方案1】:

    不要试图弄清楚如何重定向,只需使用可以满足您需求的工具即可。这些中的任何一个:

    【讨论】:

    • 我知道 jstack(默认与 jvm 一起安装)。但是这个工具在我管理的服务器上不可用,所以这个关于 kill -3 dump 的问题。无论如何谢谢(我不知道堆栈)
    • 如果你需要在你的服务器上调试工具,你可以并且应该安装它们。 :)
    【解决方案2】:

    请将以下 JVM 参数附加到您的应用程序中。应在 dump.log 中捕获线程转储。

    -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=dump.log

    请注意,它不会重定向,但会启用 JVM 诊断日志记录。因此,也有可能在头顶上。

    按照 Matt 的建议,您可以使用 jstack (etc) 在文件中捕获线程转储。为此,您可以简单地复制服务器中的 JDK 目录。但是,如果您想将 JDK 与您的应用程序一起打包并发布(以便稍后调试),请检查是否有任何许可暗示。

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多