如何查看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

  查看問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM