Jstack 查看線程狀態及定位占用 cpu 較高的 java 線程


  

本文為博主原創,未經允許不得轉載:

  1. Jstack 用來查看 java 指定進程所包含的 java 線程狀態:

    

 

          

 

   "arthas-NettyHttpTelnetBootstrap-3-3" 線程名

  prio=5 優先級=5
  tid=0x00007f6a60019000 線程id
  nid=0x1f4b 線程對應的本地線程標識nid
  java.lang.Thread.State: RUNNABLE 線程狀態

 

 2.使用 Jstack 定位最消耗 cpu 的線程

  2.1 使用命令top -p <pid> ,顯示你的java進程的內存情況,pid是java進程號,
      

 

  2.2 按H,獲取每個線程的內存情況

  

 

  2.3 找到內存和cpu占用最高的線程tid :19113,並使用 printf  "%x\n" 轉為16進制

 

 

 

  2.4 使用 jstack 查看該進程對應線程執行的堆棧信息 

 

 

   

  2.5 根據堆棧信息定位消耗 cpu 的原因 

 
 
 
 


免責聲明!

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



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