輸出全部的java進程html
-l :輸出主類全名。java
-v:輸出虛擬機進程啓動的jvm參數。jvm
-m:輸出啓動時傳遞給main函數的參數。函數
-q:只輸出LVMID,省略主類的名稱。工具
jinfo 帶尖括號的是必需要傳遞的參數,帶中括號的是可選的參數。 spa
jinfo [option] <pid>線程
option是可選參數,表示能夠選擇哪些操做。能夠選擇的option參數在下面有介紹。好比 -flag <name> 和 -flags等htm
顯示JVM配置信息blog
C:\>jinfo 11188 #將全部的JVM配置信息一股腦的都打印出來進程
C:\>jinfo -flags 11188 #打印全部JVM的參數值
下面在只作解釋說明,再也不寫對應命令
-flag [+|-]< name >:設置或取消指定java虛擬機參數的布爾值
-flag < name >=< value >:設置指定java虛擬機的參數的值
打印線程棧信息。
得到JVM堆棧信息
C:\>jstat -options ## 查看jstat支持哪些操做選項
-class ##類加載數量
-compiler ##編譯數量
-gc ##gc信息(重點)
-gccapacity ##堆內存統計
-gccause ##gc的緣由
-gcmetacapacity ##元數據空間統計
-gcnew ##新生代垃圾回收統計
-gcnewcapacity ##新生代內存統計
-gcold ##老年代垃圾回收統計
-gcoldcapacity ##老年代內存統計
-gcutil ##總垃圾回收統計
-printcompilation ##JVM編譯方法統計
重點關注-gc命令便可,其餘命令都是對這個命令的細化。
C:\>jstat -gc 1584 2000 5 ## 每隔2000ms打印一次1584進程的堆棧信息,一共打印5次。
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
218112.0 229888.0 34559.1 0.0 550400.0 109873.8 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
218112.0 229888.0 34559.1 0.0 550400.0 109887.4 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
218112.0 229888.0 34559.1 0.0 550400.0 118789.0 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
218112.0 229888.0 34559.1 0.0 550400.0 118798.2 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
218112.0 229888.0 34559.1 0.0 550400.0 119354.1 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
218112.0 229888.0 34559.1 0.0 550400.0 119428.0 2303488.0 1711771.6 105088.0 101679.9 11904.0 11157.2 80 6.640 9 21.079 27.719
S0C:年輕代第一個倖存區(from)容量,單位KB。
S1C:年輕代第二個倖存區(to)的容量,單位KB。
SOU:年輕代第一個倖存區(from)目前已經使用的容量,單位KB。
S1U:年輕代第二個倖存區(to)目前已經使用的容量,單位KB。
EC:年輕代Eden容量,單位KB。
EU:年輕代Eden已使用容量,單位KB。
OC:老年代Old容量,單位KB。
OU:老年代Old已使用容量,單位KB。
MC:方法區容量,單位KB。
MU:方法區已使用容量,單位KB。
CCSC:壓縮類空間容量,單位KB。
CCSU:壓縮類空間使用容量,單位KB。
YGC:年輕代垃圾回收次數
YGCT:年輕代垃圾回收消耗時間
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗的總時間
對於上面這些分區不瞭解的,能夠看另外一篇文章,jvm-堆內存。
生成JVM內存快照信息
以上就是jvm經常使用的命令。很直接,只要安裝了jdk,這些工具命令就都能使用。可是有時候咱們要分析一些比較複雜的問題的時候,這些命令就顯得不是那麼的直觀,有沒有一個工具,能經過圖形化的界面展現出來這些內容呢?不只有,並且仍是JDK自帶的。
就在JAVA_HOME/bin目錄下,有2個工具,一個jconsole,還有一個jvisualvm,他們都是。