jstack 排查 java 进程占用大量 CPU 问题
程序员文章站
2023-11-15 23:50:34
1、 top 看看哪个进程是罪魁祸首 2、将这个进程的jstack dump 到一个文件里面,以备使用。 使用 sftp 弄到本地。 3、查看这个进程里面哪些子进程, 按 P 键排序占用 CPU 的子进程 4、在 jstack.log 中搜索 65a1 ......
1、 top 看看哪个进程是罪魁祸首
2、将这个进程的jstack dump 到一个文件里面,以备使用。
jstack -l 25886 > /tmp/jstack.log # 如果报错,则加 -f 命令强制执行。 jstack -f 25886 > /tmp/jstack.log
使用 sftp 弄到本地。
3、查看这个进程里面哪些子进程, 按 p 键排序占用 cpu 的子进程
top -h -p 25886 (top得到的进程号) # 这里得到的子进程id 为 26017,把该值转化为十六进制 echo 26017 |awk '{printf("%x\n",$0)}' # 得到 65a1
4、在 jstack.log 中搜索 65a1