jstat(JVM Statistics Monitoring Tool)是用於監控虛擬機各類運行狀態信息的命令行工具。他能夠顯示本地或遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據,在沒有GUI圖形的服務器上,它是運行期定位虛擬機性能問題的首選工具。java
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]apache
Definitions:
<option> An option reported by the -options option
<vmid> Virtual Machine Identifier. A vmid takes the following form:
<lvmid>[@<hostname>[:<port>]]
Where <lvmid> is the local vm identifier for the target
Java virtual machine, typically a process id; <hostname> is
the name of the host running the target Java virtual machine;
and <port> is the port number for the rmiregistry on the
target host. See the jvmstat documentation for a more complete
description of the Virtual Machine Identifier.
<lines> Number of samples between header lines.
<interval> Sampling interval. The following forms are allowed:
<n>["ms"|"s"]
Where <n> is an integer and the suffix specifies the units as
milliseconds("ms") or seconds("s"). The default units are "ms".
<count> Number of samples to take before terminating.
-J<flag> Pass <flag> directly to the runtime system.bootstrap
參數interval和count表明查詢間隔和次數,若是省略這兩個參數,說明只查詢一次。假設須要每250毫秒查詢一次進程5828垃圾收集情況,一共查詢5次,那命令行以下:api
jstat -gc 5828 250 5
對於命令格式中的
VMID
與LVMID
須要特別說明下:若是是本地虛擬機進程,VMID
(Virtual Machine IDentifier,虛機標識符)和LVMID
(Local Virtual Machine IDentifier,虛機標識符)是一致的,若是是遠程虛擬機進程,那VMID的格式應當是:[protocol:][//] lvmid [@hostname[:port]/servername]
tomcat
選項option表明這用戶但願查詢的虛擬機信息,主要分爲3類:類裝載、垃圾收集和運行期編譯情況,具體選項及做用以下:服務器
常見的有 jvm
各列意義:ide
S0 S1 E O P YGC YGCT FGC FGCT GCT 11.63 0.00 56.46 66.92 98.49 162 0.248 6 0.331 0.579
S0 S1 E O P YGC YGCT FGC FGCT GCT 73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583 73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583 73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583 73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583 73.54 0.00 99.04 67.52 98.49 166 0.252 6 0.331 0.583
各列意義:工具
Loaded Bytes Unloaded Bytes Time 2629 2916.8 29 24.6 0.90
Loaded
裝載的類的數量
Bytes
裝載類所佔用的字節數
Unloaded
卸載類的數量
Bytes
卸載類的字節數
Time
裝載和卸載類所花費的時間
Compiled Failed Invalid Time FailedType FailedMethod 768 0 0 0.70 0
Compiled
編譯任務執行數量 性能
Failed
編譯任務執行失敗數量
Invalid
編譯任務執行失效數量
Time
編譯任務消耗時間
FailedType
最後一個編譯失敗任務的類型
FailedMethod
最後一個編譯失敗任務所在的類及方法
NGCMN 640.0 NGCMX 4992.0 NGC 832.0 S0C 64.0 S1C 64.0 EC 704.0 OGCMN 1408.0 OGCMX 60544.0 OGC 9504.0 OC 9504.0 OC是old內純的佔用量 PGCMN 8192.0 PGCMN顯示的是最小perm的內存使用量 PGCMX 65536.0 PGCMX顯示的是perm的內存最大使用量 PGC 12800.0 PGC是當前新生成的perm內存佔用量 PC 12800.0 PC是但前perm內存佔用量 YGC 164 FGC 6
NGCMN
年輕代(young)中初始化(最小)的大小(字節)
NGCMX
年輕代(young)的最大容量 (字節)
NGC
年輕代(young)中當前的容量 (字節)
S0C
年輕代中第一個survivor(倖存區)的容量 (字節)
S1C
年輕代中第二個survivor(倖存區)的容量 (字節)
EC
年輕代中Eden(伊甸園)的容量 (字節)
OGCMN
old代中初始化(最小)的大小 (字節)
OGCMX
old代的最大容量(字節)
OGC
old代當前新生成的容量 (字節)
OC
Old代的容量 (字節)
PGCMN
perm代中初始化(最小)的大小 (字節)
PGCMX
perm代的最大容量 (字節)PGC
perm代當前新生成的容量 (字節)
PC
Perm(持久代)的容量 (字節)
YGC
從應用程序啓動到採樣時年輕代中gc次數
FGC
從應用程序啓動到採樣時old代(全gc)gc次數
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 64.0 64.0 47.4 0.0 2 15 32.0 704.0 145.7 168 0.254
S0C
年輕代中第一個survivor(倖存區)的容量 (字節)
S1C
年輕代中第二個survivor(倖存區)的容量 (字節)
S0U
年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U
年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
TT
持有次數限制 MTT
最大持有次數限制
EC
年輕代中Eden(伊甸園)的容量 (字節)
EU
年輕代中Eden(伊甸園)目前已使用空間 (字節)
YGC
從應用程序啓動到採樣時年輕代中gc次數
YGCT
從應用程序啓動到採樣時年輕代中gc所用時間(s)
NGCMN
年輕代(young)中初始化(最小)的大小(字節)
NGCMX
年輕代(young)的最大容量 (字節)
NGC
年輕代(young)中當前的容量 (字節)
S0CMX
年輕代中第一個survivor(倖存區)的最大容量 (字節)
S0C
年輕代中第一個survivor(倖存區)的容量 (字節)
S1CMX
年輕代中第二個survivor(倖存區)的最大容量 (字節)
S1C
年輕代中第二個survivor(倖存區)的容量 (字節)
ECMX
年輕代中Eden(伊甸園)的最大容量 (字節)
EC
年輕代中Eden(伊甸園)的容量 (字節)
YGC
從應用程序啓動到採樣時年輕代中gc次數
FGC
從應用程序啓動到採樣時old代(全gc)gc次數
PC PU OC OU YGC FGC FGCT GCT 12800.0 12617.6 9504.0 6561.3 169 6 0.335 0.591
PC
Perm(持久代)的容量 (字節)
PU
Perm(持久代)目前已使用空間 (字節)
OC
Old代的容量 (字節)
OU
Old代目前已使用空間 (字節)
YGC
從應用程序啓動到採樣時年輕代中gc次數
FGC
從應用程序啓動到採樣時old代(全gc)gc次數
FGCT
從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT
從應用程序啓動到採樣時gc用的總時間(s)
OGCMN
old代中初始化(最小)的大小 (字節)
OGCMX
old代的最大容量(字節)
OGC
old代當前新生成的容量 (字節)
OC
Old代的容量 (字節)
YGC
從應用程序啓動到採樣時年輕代中gc次數
FGC
從應用程序啓動到採樣時old代(全gc)gc次數
FGCT
從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT
從應用程序啓動到採樣時gc用的總時間(s)
PGCMN PGCMX PGC PC YGC FGC FGCT GCT 8192.0 65536.0 12800.0 12800.0 169 6 0.335 0.591
PGCMN
perm代中初始化(最小)的大小 (字節)
PGCMX
perm代的最大容量 (字節)
PGC
perm代當前新生成的容量 (字節)
PC
Perm(持久代)的容量 (字節)YGC
從應用程序啓動到採樣時年輕代中gc次數
FGC
從應用程序啓動到採樣時old代(全gc)gc次數
FGCT
從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT
從應用程序啓動到採樣時gc用的總時間(s)
Compiled Size Type Method 788 73 1 java/io/File <init> 788 73 1 java/io/File <init> 788 73 1 java/io/File <init> Compiled Size Type Method 788 73 1 java/io/File <init> 788 73 1 java/io/File <init>
Compiled
編譯任務的數目
Size
方法生成的字節碼的大小
Type
編譯類型
Method
類名和方法名用來標識編譯的方法。
類名使用/作爲一個命名空間分隔符。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設置的