如何在linux环境排查生产环境java线程阻塞问题
开胃小菜
在进入主题前我们先看一下windows的一个小命令 注:在本地有java环境开启的时候执行
win+r 输入cmd 跳转命令行 输入如下指令
jvisualvm


这个小东西有很多功能,能让你看线程,堆,cpu的运行,执行垃圾回收,堆dump等等
进入主题,这里以我自己的服务器为例子
这里有很多方法找到你的线程pid
一:top命令
top

二.jps
jps

找到pid后我们可以执行
top -Hp {pid}

上图我们可以找到占用cpu最多的java线程,我们执行命令让pid变成16位
printf "%x\n" #{pid}

然后执行命令看这个线程的堆栈信息 这个pid用10进制就行
jstack -l #{pid}

注意!!!!上面jstack打印的pid用的是主线程的pid 这样打出来的堆栈信息 再通过刚才转换的16进制去找 就能找到当前java线程占用cpu最高的方法
本文详细指导在Linux环境中通过top、jps、jstack等命令排查Java应用中线程阻塞问题,包括PID获取、堆栈跟踪,以及使用jvisualvm辅助诊断技巧。
716

被折叠的 条评论
为什么被折叠?



