jvm命令-轉載
1、jps
作用:
顯示系統中所有Hotspot虛擬機器程序。
- 1
- 2
引數:
-l :輸出主類全名。
-v:輸出虛擬機器程序啟動的jvm引數。
-m:輸出啟動時傳遞給main函式的引數。
-q:只輸出LVMID,省略主類的名稱。
示例:
➜ ~ jps
➜ ~ jps -l
➜ ~ jps -v
➜ ~ jps -m
➜ ~ jps -q
2、jinfo
作用:
顯示虛擬機器的配置資訊,可觀察程序執行環境引數,包括Java System屬性和JVM命令列引數。
- 1
- 2
引數:
-flag< name >: 列印指定java虛擬機器的引數值。
-flag [+|-]< name >:設定或取消指定java虛擬機器引數的布林值。
-flag < name >=< value >:設定指定java虛擬機器的引數的值。
示例:
➜ ~ jinfo 10565
➜ ~ jinfo -flag CICompilerCount 10565
➜ ~ jinfo -flag +PrintGCDetails
➜ ~ jinfo -flag -PrintGCDetails 10532
➜ ~ jinfo -flag CMSInitiatingOccupancyFraction=80 10532
3、jstack
作用:
顯示虛擬機器的執行緒棧資訊,用於生成當前JVM的所有執行緒快照。
- 1
- 2
引數:
-F:當正常輸出的請求不被響應時,強制輸出執行緒堆疊。
-l:除堆疊外,顯示關於鎖的附加資訊。
-m:如果呼叫到本地方法的話,可以顯示C/C++的堆疊
命令格式:jstack [option] vmid。
示例:
➜ ~ jstack -F 10532
➜ ~ jstack -l 10532
➜ ~ jstack -m 10532
4、jstat
作用:
實時顯示本地或遠端JVM程序中類裝載、記憶體、垃圾收集、JIT編譯等資料。
- 1
- 2
引數:
-class:監視類裝載、解除安裝數量、總空間及類裝載所耗費的時間。
-gc:監聽Java堆狀況,包括Eden區、兩個Survivor區、老年代、永久代等的容量,以用空間、GC時間合計等資訊。
-gccapacity:監視內容與-gc基本相同,但輸出主要關注java堆各個區域使用到的最大和最小空間。
-gcutil:監視內容與-gc基本相同,但輸出主要關注已使用空間佔總空間的百分比。
-gccause:與-gcutil功能一樣,但是會額外輸出導致上一次GC產生的原因。
-gcnew:監視新生代GC狀況。
-gcnewcapacity:監視內同與-gcnew基本相同,輸出主要關注使用到的最大和最小空間。
-gcold:監視老年代GC情況。
-gcoldcapacity:監視內同與-gcold基本相同,輸出主要關注使用到的最大和最小空間。
-gcpermcapacity:輸出永久代使用到最大和最小空間。
-compiler:輸出JIT編譯器編譯過的方法、耗時等資訊。
-printcompilation:輸出已經被JIT編譯的方法。
示例:
➜ ~ jstat -class 10532
➜ ~ jstat -gc 10532
➜ ~ jstat -gccapacity 10532
➜ ~ jstat -gcutil 10532
➜ ~ jstat -gccause 10532
➜ ~ jstat -gcnew 10532
➜ ~ jstat -gcnewcapacity 10532
➜ ~ jstat -gcold 10532
➜ ~ jstat -gcoldcapacity 10532
➜ ~ jstat -compiler 10532
➜ ~ jstat -printcompilation 10532
5、jmap
作用:
用於生成虛擬機器的記憶體快照資訊
- 1
- 2
引數:
-dump:生成java堆轉儲快照。
-heap:顯示java堆詳細資訊(只在Linux/Solaris下有效)。
-F:當虛擬機器程序對-dump選項沒有響應時,可使用這個選項強制生成dump快照(只在Linux/Solaris下有效)。
-finalizerinfo:顯示在F-Queue中等待Finalizer執行緒執行finalize方法的物件(只在Linux/Solaris下有效)。
-histo:顯示堆中物件統計資訊。
-permstat:以ClassLoader為統計口徑顯示永久代記憶體狀態(只在Linux/Solaris下有效)。
示例:
➜ ~ jmap -heap 10532
➜ ~ jmap -histo 10532 | more
➜ ~ jmap -F 10532
➜ ~ jmap -finalizerinfo 10532
6、jconsole
作用:
內建 Java 效能分析器,可以從命令列或在 GUI shell 中執行。可使用 JConsole來監控 Java 應用程式效能和跟蹤 Java 中的程式碼。
- 1
- 2
7、gc相關術語
S0C:S0區容量(S1區相同,略)
S0U:S0區已使用
EC:E區容量
EU:E區已使用
OC:老年代容量
OU:老年代已使用
PC:Perm容量
PU:Perm區已使用
YGC:Young GC(Minor GC)次數
YGCT:Young GC總耗時
FGC:Full GC次數
FGCT:Full GC總耗時
GCT:GC總耗時