JVM调试-排查定位OOM、性能过高程序代码段

  • Post author:
  • Post category:其他




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 版权协议,转载请附上原文出处链接和本声明。