jstack查看線程狀態(tài) linux怎么安裝jstack工具?
linux怎么安裝jstack工具?Jstack用于打印給定Java進程ID或核心文件或遠程調試服務的Java堆棧信息。如果您在64位機器上,需要指定選項“-j-d64”,windows jstack
linux怎么安裝jstack工具?
Jstack用于打印給定Java進程ID或核心文件或遠程調試服務的Java堆棧信息。如果您在64位機器上,需要指定選項“-j-d64”,windows jstack只支持以下方式:jstack[-l]PID;如果Java程序崩潰生成核心文件,jstack工具可以用來獲取Java堆棧和原生的核心文件堆棧信息,這樣您就可以很容易地知道Java程序是如何崩潰的以及問題發(fā)生在哪里的。此外,jstack工具還可以附加到正在運行的Java程序上,以查看當時正在運行的Java程序的Java堆棧和本機堆棧的信息。如果正在運行的Java程序呈現掛起狀態(tài),jstack非常有用。不同的Java虛擬機線程轉儲創(chuàng)建方法和文件格式不同,不同的JVM版本,轉儲信息也不同。在實際操作中,轉儲信息往往不足以確認問題。建議生成三個轉儲。如果每個轉儲指向同一個問題,我們可以確定問題的典型性。;命令格式;$jstack[option]PID;$jstack[option]executable core;$jstack[option][server ID@]遠程主機名或IP;PID:Java應用程序的進程號,可通過JPS獲??;executable:生成core Dump Java可執(zhí)行程序;core:打印的core文件;remote host name或IP:遠程調試服務器的名稱或IP;服務器ID:唯一的ID。如果一臺主機上有多個遠程調試服務
Linux系統(tǒng),請按照以下步驟進行檢查:
top-c。將顯示正在運行的系統(tǒng)的進程信息。輸入capital p以根據利用率對流程進行排序。您可以看到,第一列是進程ID,如圖所示,消耗CPU最多的進程ID是5986:
top-HP 5986,顯示進程的線程運行信息列表,繼續(xù)輸入大寫p按CPU利用率排序,您可以看到第一行,進程中消耗CPU最多的線程ID5986是6021:
接下來,讓我們看看您的應用程序做什么。如果是Java應用程序,要獲得更多與線程相關的信息,可以將上面的進程ID轉換為十六進制,因為在堆棧中的Jav中,存儲線程的ID是十六進制的。您可以直接命令“printf”%Xn“6021”,輸出:1785:
接下來,您可以通過線程ID(十六進制)查看堆棧信息。有許多工具可以查看堆棧信息。這里我使用jstack命令“jstack 5986 | grep ”0x1785 “-C5--輸出如下:
通過以上步驟,您可以知道當前系統(tǒng)中占用CPU最多的線程以及該線程在做什么,希望能夠解決這個問題。