如何定位cpu占用率高的java線程
阿新 • • 發佈:2017-09-08
java pid
如何定位cpu占用率高的java線程
工具:
1
jstack:jstack用於打印出給定的java進程ID或core file或遠程調試服務的Java堆棧信息,如果是在64位機器上,需要指定選項"-J-d64",Windows的jstack使用方式只支持以下的這種方式。
pidstat :pidstat主要用於監控全部或指定進程占用系統資源的情況,如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。
top:或者jps找到java進程PID,或者 或者 ps -Lfp
通過%CPU和 TIME,判斷占用的線程TID
找到TID,轉換成16進制,然後在上面(jstack 進程id > ps.txt)導出的文件中搜索,就可以定位到具體的線程,類。
2、或者:
jstack -l pid > /home/1.tdump
再通過看線程 :pidstat -p pid(java進程ID) -u -d -t -w -h 1 1000
找到TID,轉換成16進制,然後在上面(jstack 進程id > 1.tdump)導出的文件中搜索,就可以定位到具體的線程,類。
3、可以下載1.tdump到本地查找
如何定位cpu占用率高的java線程