一、JDK自帶指令
Sun JDK監控和故障處理指令如:
1、jps
JVM Process Status Tool,顯示指定系統内所有的HotSpot虛拟機程序。
jsp指令格式:
jps [ options ] [ hostid ]
擴充參數:jps -l;jps -mlv;
各參數說明如下:
2、jstat
JVM statistics Monitoring,用于監視虛拟機運作時狀态資訊的指令,它可以顯示出虛拟機程序中的類裝載、記憶體、垃圾收集、JIT編譯等運作資料。
jstat指令格式:
jstat [ option vmid [interval[s|ms] [count]] ]
jstat -gc pid 1000 10
檢視目前pid使用jvm堆棧空間的記憶體使用情況,每1000豪秒,共列印10次
jstat -gcutil pid 1000 10 記憶體百分比
3、jmap
JVM Memory Map,用于生成heap dump檔案。
jmap指令格式:
jmap [ option ] vmid
4、jhat
JVM Heap Analysis Tool,與jmap搭配使用,用來分析jmap生成的dump,該指令解析 Java 堆轉儲檔案并啟動 Web 伺服器,生成dump的分析結果後,可以在浏覽器中檢視。
使用案例:
1. 導出dump資訊到a.bin檔案
2. 啟動jhat進行分析檔案
5、jstack
用于生成虛拟機目前時刻的線程快照(一般稱為threaddump或者javacore檔案)。線程快照就是目前虛拟機内每一條線程正在執行的方法堆棧集合,生成線程快照的目的通常是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導緻的長時間挂起等,都是導緻線程長時間停頓的常見原因。
jstack指令格式:
jstack [ option ] vimd
6、jinfo
JVM Configuration info,用于實時檢視和調整虛拟機運作參數。
jinfo指令格式:
主要介紹-flag參數,如果想檢視一個已經運作的java程式的虛拟機參數值
jinfo [ option ] pid
$ jinfo -flag MaxMetaspaceSize 962
-XX:MaxMetaspaceSize=18446744073709547520
二、JDK的可視化工具JConsole
1、JConsole
JConsole(Java Monitoring and Management Console)是一種基JMX(Java Management Extensions,即Java管理擴充)的可視化監視、管理工具。
通過JDK/bin目錄下的“jconsole.exe”啟動JConsole後,将自動搜尋出本機運作的所有虛拟機程序。
2、VisualVM
VisualVM是更常用的可視化監控工具,它本身還具有插件擴充功能,是以功能非常強大,目前使用非常多。
需要先說明的是一些安裝上的問題,雖然安裝好jdk之後是會有一個VisualVM的程式在jdk的bin目錄下,但是不建議使用jdk提供的這個,建議直接去官網下載下傳最新的版本使用。
下載下傳:
http://visualvm.github.io/download.html
插件下載下傳:
http://visualvm.github.io/pluginscenters.html