使用top及jstack查看某个java线程CPU占用情况时报错:
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命令使用了jstack +线程号(不是具体线程号,而是java进程号),具体使用如下:
- top命令查看CPU占用情况
- top -h 27489 查看java进程cpu情况, top界面下按大写H 查看每个线程CPU情况
- 看到27489 java进程中27490线程占用高额CPU
- 计算27490的十六进制表示,得到6b62
Integer s = 27490;
System.out.println(Integer.toHexString(s));
- 使用jstack查看进程号为27489的Java应用中十六进制线程号为6b62的堆栈信息(开始用的是27490进程号)
jstack 27490 |grep -A 50 6b62 //错误用法!!!
jstack 27489 |grep -A 50 6b62 //-A 50显示的堆栈行数
准确定位到具体类CpuTest的main方法21行代码处。
更多推荐
Unable to open socket file: target process not responding or HotSpot VM not load
发布评论