1. 程式人生 > >jvm命令-轉載

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總耗時