如何查看CPU消耗最高的线程
作者:互联网
如何找出消耗CPU最多的线程?
1.使用 top -c 找出所有当前进程的运行列表
2. 按P对所有进程按CPU使用率进行排序,找出消耗最高的线程PID
3.使用 top -Hp PID,查出里面消耗最高的进程,继续按P排序
4.这个线程PID是十进制的,我们需要转换为十六进制
此时已经找到了消耗CPU资源最多的线程,下面为排查问题过程
5. 导出进程快照
jstack -l PID> ./PID.stack //PID为进程PID
6.再用grep查看一下线程在文件里做了啥
cat PID.stack |grep '线程PID十六进制' -C 8
实例
1. top -c
2. 按P
显示Java进程 PID 为 2609 的java进程消耗最高
3. top -Hp 2609
4. 按P
可以看到 2854 CPU消耗最高,转换为十六进制:b26
5. jstack -l 2609 > ./2609.stack
6. cat 2609.stack |grep 'b26' -C 8
查看问题
标签:查看,PID,消耗,2609,线程,stack,CPU 来源: https://www.cnblogs.com/qmillet/p/13066732.html