轉自:http://blog.csdn.net/initphp/article/details/31040349
在Java的bin目錄下面,我們其實可以看到很多命令行的工具,這些工具對我們監控虛擬機帶來了極大的遍歷。
我們可以看到下面的圖就是java的/bin目錄:
1. jps 虛擬機進程狀況工具
jps命令主要用於顯示當前用戶的進程。
1. 命令jps,則可以看到當前的用戶的進程ID
2. 命令jps -q只顯示進程ID,不顯示其他。
3. 命令jps -l 輸出主類的全名
可以清洗看到,我這邊啓動了一個jetty
4. 命令jps -m 顯示主類main函數的參數
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
年輕代對象的信息及其佔用量。
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的一些內存使用情況。