jav*_*erd 112 java multithreading dump
我正在使用kill -3
命令在unix中查看JVM的线程转储.但是我在哪里可以找到此kill
命令的输出?我搞不清楚了!!
Jos*_*non 189
您也可以使用jstack(包含在JDK中)进行线程转储并将输出写入您想要的任何位置.这在unix环境中不可用吗?
jstack PID > outfile
Run Code Online (Sandbox Code Playgroud)
Kri*_*bic 42
线程转储从执行kill -3的VM写入系统.如果要将JVM的控制台输出重定向到文件,则线程转储将位于该文件中.如果JVM在打开的控制台中运行,则线程转储将显示在其控制台中.
Vad*_*zim 30
有一种方法可以将中断信号上的JVM线程转储输出重定向到具有LogVMOutput诊断选项的单独文件:
-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log
Run Code Online (Sandbox Code Playgroud)
Arn*_*was 21
使用Java 8图片,jcmd
是首选方法.
jcmd <PID> Thread.print
Run Code Online (Sandbox Code Playgroud)
以下是Oracle文档的片段:
JDK 8的发布引入了Java Mission Control,Java Flight Recorder和jcmd实用程序,用于诊断JVM和Java应用程序的问题.建议使用最新的实用程序jcmd代替以前的jstack实用程序,以增强诊断并降低性能开销.
但是,随应用程序运送此产品可能会产生许可影响,我不确定.
小智 8
当使用kill -3时,应该在标准输出中看到线程转储.大多数应用程序服务器将标准输出写入单独的文件.你应该在使用kill -3时找到它.有多种获取线程转储的方法:
归档时间: |
|
查看次数: |
161521 次 |
最近记录: |