0%

jstat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
jstat [ option vmid [interval[s|ms] [count]]]

如果是本地虚拟机进程, vmid 与 lvmid 一致; 如果是远程虚拟机进程, vmid 格式为
[protocol:][//]lvmid[@hostname[:port]/servername]

options:
-class 监视类装载, 卸载数量, 总空间以及类装载所耗费的时间
-gc 监视 Java 堆状况, 包括 Eden 区, 两个 Survivor 区, 老年代, 永久代等容量, 已用空间, GC 时间合计等信息
-gcapacity 监视内容与 -gc 基本相同, 但输出主要关注 Java 堆各个区域使用到的最大, 最小空间
-gcutil 监视内容与 -gc 基本相同, 但输出主要关注已使用空间占总空间的百分比
-gccause 监视内容与-gcutil功能一样, 但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC状况
-gcnewcapacity 监视内容与-gcnew基本相同, 输出主要关注使用到的最大, 最小空间
-gcold 监视老年代GC状况
-gcoldccapacity 监视内容与-gcold基本相同, 输出主要关注使用到的最大, 最小空间
-gcpermcapacity 输出永久代使用到的最大, 最小空间
-compiler 输出JIT编译器编译过的方法, 耗时等信息
-printcompilation 输出已经被JIT编译的方法

1. 常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# jstat -<option> [-t] [-h<lines>] $pid [<interval> [<count>]]
# interval 间隔时间, 单位毫秒
# count 打印次数
jstat -gc $pid 5000 20
# 输出如下
# S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
# 10240.0 10240.0 0.0 0.0 63488.0 29363.2 167936.0 0.0 4480.0 779.9 384.0 76.4 0 0.000 0 0.000 0.000
# 10240.0 10240.0 0.0 0.0 63488.0 29363.2 167936.0 0.0 4480.0 779.9 384.0 76.4 0 0.000 0 0.000 0.000
# 10240.0 10240.0 0.0 0.0 63488.0 29363.2 167936.0 0.0 4480.0 779.9 384.0 76.4 0 0.000 0 0.000 0.000
#
# S0C: 年轻代第一个survivor的容量(字节)
# S1C: 年轻代第二个survivor的容量(字节)
# S0U: 年轻代第一个survivor已使用的容量(字节)
# S1U: 年轻代第二个survivor已使用的容量(字节)
# EC: 年轻代中Eden的空间(字节)
# EU: 年代代中Eden已使用的空间(字节)
# OC: 老年代的容量(字节)
# OU: 老年代中已使用的空间(字节)
# PC: 永久代的容量
# PU: 永久代已使用的容量
# YGC: 从应用程序启动到采样时年轻代中GC的次数
# YGCT: 从应用程序启动到采样时年轻代中GC所使用的时间(单位: S)
# FGC: 从应用程序启动到采样时老年代中GC(FULL GC)的次数
# FGCT: 从应用程序启动到采样时老年代中GC所使用的时间(单位: S)

jstat -gcutil $pid 5000 20
# 输出如下
# S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
# 0.00 0.00 48.25 0.00 17.41 19.90 0 0.000 0 0.000 0.000
# 0.00 0.00 48.25 0.00 17.41 19.90 0 0.000 0 0.000 0.000
# 0.00 0.00 48.25 0.00 17.41 19.90 0 0.000 0 0.000 0.000
#
# s0: 年轻代中第一个survivor已使用的占当前容量百分比
# s1: 年轻代中第二个survivor已使用的占当前容量百分比
# E: 年轻代中Eden已使用的占当前容量百分比
# O: 老年代中已使用的占当前容量百分比
# P: 永久代中已使用的占当前容量百分比
# M: 等于 MU/MC, Meta 区使用率

# 显示加载class的数量, 及所占空间等信息
jstat -class $pid