Linux排查Java程序佔用CPU很高的解決辦法

Java的工具集至關強大,學習成本也很低,處理線上問題時,jstack這個工具就比微軟的windbg,好學好用不少,3步找出佔用CPU很高的源所在。而windbg反人類的各類命令,實在不敢恭維。網絡

 

故意設置了一個CPU佔用很高的場景:工具

 

排查問題,步驟:學習

1. ps -mp 【替換爲進程ID PID】 -o THREAD,tid,time線程

發現線程632二、6323佔用CPU很高,時間也很長。3d

 

2. printf 「%x」 【線程ID TID】blog

把TID轉換爲16進制。進程

 

3. jstack 【進程ID PID】 | grep 【線程ID十六進制】 -A 10 -B 10grep

利用jstack工具,查看先後10行,發現問題所在!im

代碼中故意設置:db

 

4. 重複二、3,查看另外一個線程。

 

----

附錄:要訪問本身的Virtual Box,網絡設置要調整爲:

相關文章
相關標籤/搜索