JVM调试-排查定位OOM、性能过高程序代码段
1、查看程序进程ID
- 通过名称查看最大
# 查看所有运行的java线程
ps -ef|grep java
-
查询结果如下
2、根据本服务进程ID查看各线程性能使用情况
- 输入命令
# 进入线程监控
top -p 72524
-
效果如下:
#此时按 H 就可以查看进程内各线程性能利用情况
H
-
效果如下:
3、根据线程id定位具体程序
- 对线程号进行16进制转换,可以网上进行在线转换,我的线程号是74377 转换为16进制为:12289
#查看具体程序
jstack 72524|grep -A 10 12289
-
查询结果如下
可以看到哪块程序代码占用性能最高然后进行排查
4、遇到问题
-
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
72524: 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
原因为此服务启动用户为app用户,我使用root用户执行,因为用户不匹配所以查看不了,切换好相应的用户后即可正常查看
版权声明:本文为zuijiuhengdao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。