Java深入 - Java虛擬機 常用監控和故障處理工具

轉自:http://blog.csdn.net/initphp/article/details/31040349


在Java的bin目錄下面,我們其實可以看到很多命令行的工具,這些工具對我們監控虛擬機帶來了極大的遍歷。

我們可以看到下面的圖就是java的/bin目錄:


1. jps 虛擬機進程狀況工具

jps命令主要用於顯示當前用戶的進程。

1. 命令jps,則可以看到當前的用戶的進程ID

  1. jsp  


2. 命令jps -q只顯示進程ID,不顯示其他。

  1. jps -q   


3. 命令jps -l 輸出主類的全名

  1. jps -l  

可以清洗看到,我這邊啓動了一個jetty


4. 命令jps -m 顯示主類main函數的參數

  1. jps -m  


5. 命令jps -v  顯示JVM配置的一些具體參數


2. jstat 虛擬機統計信息監控

jstat主要查看虛擬機狀態。

1. jstat -gc pid  顯示虛擬機GC信息



2.jstat -gccapacity pid

可以顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小。


3. jstat -gcutil pid

統計gc信息統計


4.jstat -gcnew pid

年輕代對象的信息。


5.jstat -gcnewcapacity pid

年輕代對象的信息及其佔用量。


6.jstat -gcold pid

old代對象的信息。



7.stat -gcoldcapacity pid

old代對象的信息及其佔用量。



8.jstat -gcpermcapacity pid

perm對象的信息及其佔用量。



9.jstat -class pid

顯示加載class的數量,及所佔空間等信息。


10.jstat -compiler pid

顯示VM實時編譯的數量等信息。



11.stat -printcompilation pid

當前VM執行的信息。

S0C:年輕代中第一個survivor(倖存區)的容量 (字節)
S1C:年輕代中第二個survivor(倖存區)的容量 (字節)
S0U:年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U:年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
EC:年輕代中Eden(伊甸園)的容量 (字節)
EU:年輕代中Eden(伊甸園)目前已使用空間 (字節)
OC:Old代的容量 (字節)
OU:Old代目前已使用空間 (字節)
PC:Perm(持久代)的容量 (字節)
PU:Perm(持久代)目前已使用空間 (字節)
YGC:從應用程序啓動到採樣時年輕代中gc次數
YGCT:從應用程序啓動到採樣時年輕代中gc所用時間(s)
FGC:從應用程序啓動到採樣時old代(全gc)gc次數
FGCT:從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
NGCMN:年輕代(young)中初始化(最小)的大小 (字節)
NGCMX:年輕代(young)的最大容量 (字節)
NGC:年輕代(young)中當前的容量 (字節)
OGCMN:old代中初始化(最小)的大小 (字節) 
OGCMX:old代的最大容量 (字節)
OGC:old代當前新生成的容量 (字節)
PGCMN:perm代中初始化(最小)的大小 (字節) 
PGCMX:perm代的最大容量 (字節)   
PGC:perm代當前新生成的容量 (字節)
S0:年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比
S1:年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比
E:年輕代中Eden(伊甸園)已使用的佔當前容量百分比
O:old代已使用的佔當前容量百分比
P:perm代已使用的佔當前容量百分比
S0CMX:年輕代中第一個survivor(倖存區)的最大容量 (字節)
S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (字節)
ECMX:年輕代中Eden(伊甸園)的最大容量 (字節)
DSS:當前需要survivor(倖存區)的容量 (字節)(Eden區已滿)
TT: 持有次數限制
MTT : 最大持有次數限制


3. jinfo 打印java進程的配置信息


用法:
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [server-id@]remote-hostname-or-IP 

參數:pid   進程號
executable   產生core dump的java executable
core   core file
remote-hostname-or-IP  主機名或ip
server-id    遠程主機上的debug server的唯一id

選項:
no option  打印命令行參數和系統屬性
-flags  打印命令行參數
-sysprops  打印系統屬性
-h  幫助




4. jmap 生成虛擬機的內存快照


5. jhat 用於分析heapdump文件


6. jstack 顯示虛擬機的線程快照

7. Jconsole可視化控制檯

打開後有可視化的Java監控界面:

可以看到可視化界面就可以方便的查看Java的一些內存使用情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章