top命令找到佔用CPU最高的java執行緒

cindylpp發表於2024-03-28
1、使用jps查詢正在執行的java程序
2、透過使用top命令查詢該執行緒下CPU使用最高的執行緒

  top -Hp pid: 即 top -Hp 2860

3、TIME列就是各個Java執行緒耗費的CPU時間,顯然CPU時間最長的是ID為2968的執行緒,用 printf "%x\n" 2968

  可得到2968的十六進位制值為:b98

4、終於輪到jstack上場了,它用來輸出程序2860的堆疊資訊,然後根據執行緒ID的十六進位制值grep,如下:

 

  可以看到CPU消耗在SessionTracker這個類的Object.wait(),於是就能很容易的定位到相關的程式碼了。



1

相關文章