JVM內建工具使用介紹
命令列工具
jps
JVM Process Status Tool
,顯示指定系統內所有的HotSpot
虛擬機器程序
jstat
JVM Statistics Monitoring Tool
,用於收集HotSpot
虛擬機器各方面的執行資料。
示例
jstat -gc 12306 250 20
每250
毫秒查詢一次程序12306
垃圾收集狀況,一共查詢20
次
###詳細引數
S0
Survior區使用比例, S1
Survior區使用比例
E
新生代區使用比例, O
老年代區使用比例, P
永久代區使用比例, M
元資料區使用比例
YGC
年輕代垃圾回收次數, YGCT
年輕代垃圾回收時間, FGC
FGCT
老年代垃圾回收時間, GCT
垃圾回收總時間
jinfo
查詢程序12306
的虛擬機器配置資訊
示例
jinfo 12306
Configuration Info for Java
,顯示虛擬機器配置資訊
jmap
Memory Map for Java
,生成虛擬機器的記憶體轉儲快照(heapdump檔案)
基本引數:
-dump:[live,]format=b,file=
使用hprof二進位制形式,輸出jvm的heap內容到檔案=. live子選項是可選的,假如指定live選項,那麼只輸出活的物件到檔案.
-finalizerinfo
列印正等候回收的物件的資訊.
-heap
列印heap的概要資訊,GC使用的演算法,heap的配置及wise heap的使用情況.
-histo[:live]
列印每個class的例項數目,記憶體佔用,類全名資訊. VM的內部類名字開頭會加上字首”*”. 如果live子引數加上後,只統計活的物件數量.
-permstat
列印classload和jvm heap長久層的資訊. 包含每個classloader的名字,活潑性,地址,父classloader和載入的class數量. 另外,內部String的數量和佔用記憶體數也會打印出來.
-F
強迫.在pid沒有相應的時候使用-dump或者-histo引數. 在這個模式下,live子引數無效.
-h | -help
列印輔助資訊
-J
傳遞引數給jmap啟動的jvm.
pid 需要被列印配相資訊的java程序id
jhat
JVM Heap Dump Browser
,用於分析heapdump
檔案,它會建立一個HTTP/HTML
伺服器,讓使用者可以在瀏覽器在檢視分析結果
jstack
Stack Trace for Java
,顯示虛擬機器的執行緒快照
jmap -heap 1159
jmap -histo 1159
jstack 1159
jmap -dump:format=b,file=jvm.log 1159
jhat tomcat.bin