1、找出最耗费CPU的进程pid
使用 top 命令找出,如下图 pid=20142
2、找出该pid最耗费资源的线程(不一定是一个)
top -Hp pid
在这里,就是 top -Hp 20142,找到最耗费资源的线程id=20167
3、将线程id转换成16进制
printf ‘%x\n’ 线程id
即:printf ‘%x\n’ 20167 ==>> 4ec7
4、查看或保存栈信息
查看:jstack -l 20142 | grep -A 10 ‘4ec7’
ps: -A 表示从目标行后10行
保存:jstack -l 20142 > jstack.info
将生成一个 jstack.info 的文件,可以打开这个文件去查询 ‘nid=0x4ec7’ 找到线程相关信息
5、备份堆信息
jmap -dump:format=b,file=jmap.info pid
ps:
查询进程的线程总个数:ps -Lfp pid | wc -l
查看进程运行时间: ps -mp pid
进程情况: ps -Tp pid