jstat分析JVM的使用情况和查看full gc频率

jstat 命令格式

如下所示为jstat的命令格式

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

使用jps查看java进程

也可以直接使用ps -ef | grep java查看java进程

如下表示分析进程id为25677的gc情况,每隔1000ms打印一次记录,打印10次停止,每3行后打印指标头部

 jstat -gc -h3  25677 1000 10

1 jstat -gc

jstat -gc xxxx

其对应的指标含义如下:

参数 描述
S0C 年轻代中第一个survivor(幸存区)的容量 (字节)
S1C 年轻代中第二个survivor(幸存区)的容量 (字节)
S0U 年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U 年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC 年轻代中Eden(伊甸园)的容量 (字节)
EU 年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC Old代的容量 (字节)
OU Old代目前已使用空间 (字节)
MC 方法区大小
MU 方法区目前已使用空间 (字节)
CCSC 压缩类空间大小
CCSU 压缩类空间已使用大小
YGC 从应用程序启动到采样时年轻代中gc次数
YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)
FGC 从应用程序启动到采样时old代(全gc)gc次数
FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT 从应用程序启动到采样时gc用的总时间(s)
   

2 jstat -gcutil

查看gc的统计信息

jstat -gcutil xxxx

其对应的指标含义如下:

参数 描述
S0 年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1 年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E 年轻代中Eden(伊甸园)已使用的占当前容量百分比
O old代已使用的占当前容量百分比
M 元数据区使用比例
P perm代已使用的占当前容量百分比
CCS 压缩使用比例
YGC 年轻代垃圾回收次数
YGCT 年轻代垃圾回收GC所用时间
FGC 从应用程序启动到采样时old代(全gc)gc次数
FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT 从应用程序启动到采样时gc用的总时间(s)

3 jstat -gccapacity

jstat -gccapacity xxxx

其对应的指标含义如下:

参数 描述
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次数
   

4 其他命令

  • 查看年轻代对象的信息及其占用量。
jstat -gcnewcapacity xxxx
  • 查看老年代对象的信息及其占用量。
jstat -gcoldcapacity xxxx
  • 查看年轻代对象的信息
jstat -gcnew xxxx
  • 查看老年代对象的信息
jstat -gcold xxxx

5.查看full gc频率

查看进程运行时间

]# ps -eo pid,tty,user,comm,lstart,etime | grep 24019
24019 ?        admin    java            Thu Dec 13 11:17:14 2018    01:29:43
进程id                   进程名          开始时间                     持续时间  

算频率

持续时间 /FGC

猜你喜欢

转载自blog.csdn.net/Crystalqy/article/details/107542354