1. 程式人生 > 其它 >【JVM】【三】【JVM命令列及視覺化工具】

【JVM】【三】【JVM命令列及視覺化工具】

一、JVM命令列工具

1.1、jps 虛擬機器程序狀況工具

1.1.1、命令

jps [options] [hostid]

1.1.2、作用

可以列出正在執行的虛擬機器程序,並顯示虛擬機器執行主類(Main Class, main()函式所在的類)名稱以及這些程序的本地虛擬機器唯一ID (LVMID, Local Virtual M achine Identifier)

1.1.3、使用場景

  • 需要確認程序id

1.1.4、引數

-q 只輸出LVMID.省略主類的名稱
-m 輸出虛擬機器程序啟動時傳遞給主類main()承數的引數
-l 輸出主類的全名,如果程序執行的是JAR包,則輸出JAR路徑
-v 輸出虛擬機器程序啟動時的JVM引數

1.1.5、使用

  • jps

  • jps -q

  • jps -m

  • jps -l

  • jps -v

注:對於本地虛擬機器程序來說, LVMID與作業系統的程序ID (PID, Process Identifier)是一致的,使用Windows的工作管理員或者UNIX的ps命令也可以查詢到虛擬機器程序的LVMID。

1.2、jstack Java堆疊跟蹤工具

1.2.1、命令

jps [options] vmid

1.2.2、作用

用於生成虛擬機器當前時刻的執行緒快照(一般稱為threaddump或者javacore檔案) ,執行緒快照就是當前虛擬機器內每一條執行緒正在執行的方法堆疊的集合。

1.2.3、使用場景

  • 執行緒出現長時間停頓(如執行緒間死鎖、死迴圈、請求外部資源導致的長時間掛起等,都是導致執行緒長時間停頓的常見原因)

注:執行緒出現停頓時通過jstack來檢視各個執行緒的呼叫堆疊,就可以獲知沒有響應的執行緒到底在後臺做些什麼事情,或者等待著什麼資源

1.2.4、引數

-F 當正常輸出的請求不被響應時,強制輸出執行緒堆疊
-l 除堆疊外,顯示關於鎖的附加資訊
-m 如果呼叫到本地方法的話,可以顯示C/C++的堆疊 

1.2.5、使用

  • jstack -F vmid

  • jstack -l vmid

  • jstack -m vmid

1.3、jinfo Java配置資訊工具

1.3.1、命令

jinfo [options] pid

1.3.2、作用

實時檢視和調整虛擬機器各項引數。

1.3.3、使用場景

  • 使用jps命令的-v引數可以檢視虛擬機器啟動時顯式指定的引數列表,但如果想知道未被顯式指定的引數的系統預設值,除了去找資料外,就只能使用jinfo的-flag選項進行查詢了(如果只限於JDK 6或以上版本的話,使用javaXX: +PrintFlagsFinal檢視引數預設值也是一個很好的選擇)。
  • jinfo還可以使用-sysprops選項把虛擬機器程序的System.getPropertiesO的內容打印出來。這個命令在JDK 5時期已經隨著Linux版的JDK釋出,當時只提供了資訊查詢的功能, JDK 6之後,jinfo在Windows和Linux平臺都有提供,並且加入了在執行期修改部分引數值的能力(可以使用-flag[+-]name或者-flag name-value在執行期修改一部分執行期可寫的虛擬機器引數值)。

注:在JDK 6中, jinfo對於Windows平臺功能仍然有較大限制,只提供了最基本的-flag選項。

1.3.4、引數

no option 輸出全部的引數和系統屬性
-flag name 輸出對應名稱的引數
-flag [+|-]name 開啟或者關閉對應名稱的引數
-flag name=value 設定對應名稱的引數
-flags 輸出全部的引數
-sysprops 輸出系統屬性

1.3.5、使用

  • jinfo pid

  • jinfo -flag name pid

  • jinfo -flag [+|-]name pid

  • jinfo -flag name=value pid

  • jinfo -flags pid

  • jinfo -sysprops pid

1.4、jstat 虛擬機器統計資訊監視工具

1.4.1、命令

jmap [option] vmid

1.4.2、作用

1.4.3、使用場景

1.4.4、引數

1.4.5、使用

1.5、jmap Java記憶體映像工具

1.5.1、命令

1.5.2、作用

生成堆轉儲快照,與jhat配合使用

1.5.3、使用場景

1.5.4、引數

1.5.5、使用

1.6、jhat 虛擬機器堆轉儲快照分析工具

1.6.1、命令

1.6.2、作用

分析jmap生成的堆轉儲快照

1.6.3、使用場景

1.6.4、引數

1.6.5、使用

二、JVM視覺化工具

2.1、jconsole Java監視與管理控制平臺

2.2、jvisualvm 多合-故障處理工具

2.3、jmc 可持續線上的監控工具