1. 程式人生 > >如何定位cpu占用率高的java線程

如何定位cpu占用率高的java線程

java

如何定位cpu占用率高的java線程

工具:

1

jstack:jstack用於打印出給定的java進程ID或core file或遠程調試服務的Java堆棧信息,如果是在64位機器上,需要指定選項"-J-d64",Windows的jstack使用方式只支持以下的這種方式。

pidstatpidstat主要用於監控全部或指定進程占用系統資源的情況,如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。

top:或者jps找到java進程PID,或者 或者 ps -Lfp

pid

通過%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線程