top使用
top
top -Hp 115183
115183 为你想分析的的进程。
得到要分析的线程。
jstack使用
jstack 分析进程中所有线程信息,需要grep搜索指定线程。在之前需要先把10进制准换为16进制。
进制转换
linux下,10<–>16进制互转。
# 10-->16
printf %x 115479
1c317
# 16-->10
printf %d 0x1c317
115479
分析线程
jstack 115183 > /tmp/jstack.log
隔段时间再执行一次stack命令获取thread dump,区分两份dump是否有差别,在nid=0x1c317的线程调用栈中,发现该线程一直在执行LockSupport.java类第215行的代码,得到这个信息,就可以检查对应的代码是否有问题。