我有一个
Linux盒子,CPU利用率几乎达到最大化.我使用top来追踪有问题的Java进程(12462)和底层线程(12465和12466).我希望运行jstack并在输出中搜索30b1和30b2(前面提到的线程转换为十六进制),这样我就可以弄清楚Java正在做什么.
当我运行没有任何标志的jstack时,它返回以下错误:
12462: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
但是,当我运行jstack -F时,输出不包含tid或nid信息.这是输出的摘录:
Thread 31374: (state = IN_NATIVE)
- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise)
- java.net.SocketInputStream.read(byte[], int, int, int) @bci=79, line=150 (Compiled frame)
- java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=121 (Compiled frame)
- org.apache.coyote.http11.InternalInputBuffer.fill(boolean) @bci=59, line=516 (Compiled frame