jstack - 堆棧跟蹤工具

image.png

jstack一般用來查看指定線程(比如CPU較高、內(nèi)存占用較高)的堆棧、查看死鎖的原因。
打印對指定進程的堆棧信息:
jstack 進程號
(只截取了開頭和結(jié)尾):

image.png

image.png

查找指定線程的堆棧(比如CPU消耗最高的線程):

1.top查找出哪個進程消耗的cpu高。執(zhí)行top命令,默認是進程視圖,其中PID是進程號
21125 co_ad2    18   0 1817m 776m 9712 S  3.3  4.9  12:03.24 java                                                                                           
5284 co_ad     21   0 3028m 2.5g 9432 S  1.0 16.3   6629:44 ja

這里我們分析21125這個java進程
2.top中shift+h 或“H”查找出哪個線程消耗的cpu高 
先輸入top,然后再按shift+h 或“H”,此時打開的是線程視圖,pid為線程號
21233 co_ad2    15   0 1807m 630m 9492 S  1.3  4.0   0:05.12 java                                                                                           
20503 co_ad2_s  15   0 1360m 560m 9176 S  0.3  3.6   0:46.72 java                                                                                           

這里我們分析21233這個線程,并且注意的是,這個線程是屬于21125這個進程的。 

3.使用jstack命令輸出這一時刻的線程棧,保存到文件,命名為jstack.log。注意:輸出線程棧和保存top命令快照盡量同時進行。
  由于jstack.log文件記錄的線程ID是16進制,需要將top命令展示的線程號轉(zhuǎn)換為16進制。

4. jstack查找這個線程的信息 
jstack [進程]|grep -A 10 [線程的16進制] 
即: jstack 21125|grep -A 10 52f1  

-A 10表示查找到所在行的后10行。21233用計算器轉(zhuǎn)換為16進制52f1,注意字母是小寫。 
結(jié)果: 
 
"http-8081-11" daemon prio=10 tid=0x00002aab049a1800 nid=0x52f1 in Object.wait() [0x0000000042c75000]  
   java.lang.Thread.State: WAITING (on object monitor)  
     at java.lang.Object.wait(Native Method)  
     at java.lang.Object.wait(Object.java:485)  
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)  

在結(jié)果中查找52f1,可看到當前線程在做什么。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,621評論 1 32
  • 又來到了一個老生常談的問題,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢? 今天就這個問題開始,來談?wù)劜?..
    tangsl閱讀 4,310評論 0 23
  • 新年的第一天,她許下了一個愿望,希望自己早日找到屬于自己的幸福。 愿望竟然真的靈驗了。 他翩然而至,如同夢幻中的王...
    左手玫瑰閱讀 173評論 0 0
  • window.top 功能:返回頂層窗口,即瀏覽器窗口。注:如果窗口本身就是頂層窗口,top屬性返回的是對自身的引...
    何大必閱讀 579評論 0 0
  • 畢業(yè)一年,換了三份工作,換了行業(yè),目前這份工作想好好干,但還有很多不懂的地方,做事有點浮躁,沒有條理 ,在努力的工...
    凡凡小小姐閱讀 199評論 0 0

友情鏈接更多精彩內(nèi)容