jstack命令执行报错:Unable to open socket file: target process not responding or HotSpot VM not loaded
1:cd /tmp
2: 看目录下是否有进程Id命名的文件名
在进入后是有对应服务的进程id的文件,但是没有我想要的线程的id,那为啥没有生成线程的文件了?(如果读者你知道,烦请你告诉我下,在这我会非常感谢你。。。)
3:ps -mp pid -o THREAD,tid,time |sort -rn
将查出来的线程转换成16进制,然后用下面的命令查看对应的堆栈信息
3:使用命令 jstack pid | grep 5760(22368 对应的tid转换成16进制的数据)
jstack 后面的30 你自己试试是什么意思?(为了展示更多的线程信息)
结论:
通过线程的堆栈可以清晰的看待业务代码调用的地方,然后分析代码,看是否有问题导致cpu过高。