概览
- 获取 pid
top -c
- 获取 tid
top -Hp pid
- 转换16进制
printf ‘%x\n’ tid
- 看线程堆栈
jstack -l pid |grep -A 10 ‘nid=0xHexTid’
分步说明
获取 pid
jps -l
(-l 输出main类或Jar的全限名)
(-v 输出传入JVM的参数)
ps -ef|grep java
- 查看进程占用
(默认按照cpu占用降序排列,-c显示进程全部命令参数)
top -c
确认CPU占用较高
获取 tid
- 显示指定进程下面的线程信息
找出进程中最耗cpu的线程
(H : 显示进程下的线程)
(-p 指定进程)
top -Hp pid
tid 转换16进制
- tid(179)换算成16进制(b3)
命令转换
printf ‘%x\n’ 179
在线转换
https://tool.oschina.net/hexconvert/
查看jstack 生成的文件
jstack pid | grep tid
jstack 进程id| grep 16进制线程id
eg: jstack 1 | grep 0xb3
jstack -l 进程id |grep -A 10 ‘nid=0x16进制线程id’
(-l 会打印出额外的锁信息)
eg: jstack -l 1 |grep -A 10 ‘nid=0xb3’
reference
- https://www.kancloud.cn/dztec/jvm_mon/1482104
- https://www.jb51.net/article/261532.htm