天天看點

JDK自帶的故障處理工具

前言:

用來記錄jdk自帶的幾個處理工具,知道有這幾個東西,等有需要的時候再去具體學習使用。

1、jps 虛拟機程序狀況工具

功能:

可以列出正在運作的虛拟機程序,并顯示虛拟機執行Main類名稱及這些程序的本地虛拟機唯一ID(LVMID)。

指令:

jps [options ] [ hostid ] 

jps -q:隻輸出LVMID,省略主類的名稱

jps-m:輸出虛拟機程序啟動時傳遞給主類的參數

jps-l:輸出主類的全名,如果程序時Jar,則輸出其路徑

jps-v:輸出虛拟機程序啟動時的JVM參數。

2、jstat 虛拟機統計資訊監視工具

功能:

監視虛拟機各種運作狀态資訊的指令行工具,主要用來定位虛拟機性能的工具。它可以顯示本地或者遠端虛拟機程序中的類加載、記憶體、垃圾收集、JIT編譯等運作資料。

指令:

可以使用 jstat -help 來檢視指令參數

  • option: 參數選項
  • -t: 可以在列印的列加上Timestamp列,用于顯示系統運作的時間
  • -h: 可以在周期性資料資料的時候,可以在指定輸出多少行以後輸出一次表頭
  • vmid: Virtual Machine ID( 程序的 pid)
  • interval: 執行每次的間隔時間,機關為毫秒
  • count: 用于指定輸出多少次記錄,預設則會一直列印
  • JDK自帶的故障處理工具

option 可以從下面參數中選擇

  • -class 顯示ClassLoad的相關資訊;
  • -compiler 顯示JIT編譯的相關資訊;
  • -gc 顯示和gc相關的堆資訊;
  • -gccapacity    顯示各個代的容量以及使用情況;
  • -gcmetacapacity 顯示metaspace的大小
  • -gcnew 顯示新生代資訊;
  • -gcnewcapacity 顯示新生代大小和使用情況;
  • -gcold 顯示老年代和永久代的資訊;
  • -gcoldcapacity 顯示老年代的大小;
  • -gcutil   顯示垃圾收集資訊;
  • -gccause 顯示垃圾回收的相關資訊(通-gcutil),同時顯示最後一次或目前正在發生的垃圾回收的誘因;
  • -printcompilation 輸出JIT編譯的方法資訊;

各個區間的指令使用及相關的參數意思:

https://www.cnblogs.com/yjd_hycf_space/p/7755633.html

3、jinfo Java配置資訊工具

功能:

實時檢視和調整虛拟機各項參數。

指令:

https://www.jianshu.com/p/8d8aef212b25

4、jmap Java記憶體映像工具

功能:

生成堆轉儲快照。

指令:

https://www.jianshu.com/p/a4ad53179df3

5、jhat 虛拟機堆轉儲快照分析工具(JDK9被删除了)

功能:

與 jmap 指令一起使用,來分析 jmap 生成的堆轉儲快照。

指令:

https://www.cnblogs.com/flydean/p/jdk14-jmap-jhat.html

6、jstack 堆棧跟蹤工具

功能:

生成虛拟機目前時刻的線程快照。IDEA 也提供該功能,如下圖所示:

JDK自帶的故障處理工具

指令:

https://www.cnblogs.com/kongzhongqijing/articles/3630264.html

7、HSDIS JIT生成代碼反彙編

功能:

分析程式如何執行。

安裝:

https://www.jianshu.com/p/125f0ecf385f

使用:

https://www.jianshu.com/p/78f71c033fae