> 文章列表 > 如何找出消耗CPU最多的线程?

如何找出消耗CPU最多的线程?

如何找出消耗CPU最多的线程?

如何找出消耗CPU最多的线程

1.使用 top -c 找出所有当前进程的运行列表

top -c   

2.按P(Shift+p)对所有进程按CPU使用率进行排序,找出消耗最高的线程PID

 ​​​

显示Java进程 PID 为 136 的java进程消耗最

3.使用 top -Hp PID,查出里面消耗最高的进程,继续按P((Shift+p))排序

top -Hp 136

 4.找到最消耗CPU的线程pid

这个线程PID是十进制的,将十进制线程pid转换为十六进制

按P(Shift+p)

可以看到 188 CPU消耗最高

printf "%x\\n" 188

转换为十六进制:bc

5.保存线程栈信息

jstack -l 136 > ./136.stack

查看最消耗cpu的线程信息

 jstack 136| grep 0xbc -A 10

6. 查看信息

cat 136.stack | grep '0xbc' -C 8

或者

less 136.stack

在搜索0xbc

参考:top命令的常用方式