jstat使用方法

版权声明:本文来自kid_2412的csdn博客,欢迎转载! https://blog.csdn.net/kid_2412/article/details/51879805

jstat用来监控jvm内存各区域运行状态,格式如下:

jstat 参数 vmid 监听间隔时间 监听次数

使用方法如,vmid可以通过jps查询:

jstat -gc 52113 1000 100

即:监听进程id为52113的应用的堆状况,包含eden、2个survior、old、perm、以及gc的时间等信息。

参数如下:

  • -class 监控类装载、卸载数量、总空间以及装载类所耗时间;
  • -gc 监控应用的堆状况,包含eden、2个survior、old、perm、以及gc的时间等信息;
  • -gccapacity 监控的内容与-gc基本相同,但输出的是java堆各个区域使用的最大和最小空间;
  • -gcutil 监控内容与-gc基本相同,但输出的都是空间的占总空间的比例;
  • -gccause 与-gcutil一样,但额外输出导致上次gc产生的原因;
  • -gcnew 监控新生代gc情况;
  • -gcnewcapacity 监控内容与-gcnew基本相同,输出的是最大和最小空间;
  • -gcold 监控老年的gc情况;
  • -gcoldcapacity 监控内容与-gc基本相同,输出的是最大和最小空间;
  • -gcpermcapacity 输出永久带最大和最小空间;
  • -compiler 输出JIT编译过的方法、耗时等信息;
  • -printcompilation 输出已经被JIT编译的方法。

下面详细介绍下jstat每个参数返回结果:

参数-class

这里写图片描述

Loaded:装载的类的数量 Bytes:装载类的字节大小;
Unloaded:卸载的类的数量  Bytes:卸载类的字节大小;
Time:装载和卸载类所花费的时间。

参数-gc

这里写图片描述

S0C:新生代第一个survivor(from survivor)的空间大小(字节);
S1C:新生代第二个survivor(to survivor)的空间大小(字节);
S0U:新生代第一个survivor(from survivor)使用空间大小(字节);
S1U:新生代第二个survivor(to survivor)的使用空间大小(字节);
EC:新生代eden空间大小(字节);
EU:新生代eden使用空间大小(字节);
OC:老年代空间大小(字节);
OU:老年代使用空间大小(字节);
PC:永久代空间大小(字节);
PU:永久代使用空间大小(字节);
YGC:minor gc次数;
YGCT:minor gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gccapacity

这里写图片描述

NGCMN:新生代初始化(最小)空间大小(字节);
NGCMX:新生代最大空间大小(字节);
NGC:新生代当前空间大小(字节);
S0C:新生代第一个survivor(from survivor)的空间大小(字节);
S1C:新生代第二个survivor(to survivor)的空间大小(字节);
EC:新生代eden空间大小(字节);
OGCMN:老年代初始化(最小)空间大小(字节);
OGCMX:老年代最大空间大小(字节);
OGC:老年代当前新生成的空间大小 (字节);
OC:老年代空间大小(字节);
PGCMN:永久代初始化(最小)空间大小(字节);
PGCMX:永久代最大空间大小(字节);
PGC:永久代当前新生成的空间大小(字节);
PC:永久代空间大小(字节);
YGC:minor gc次数;
FGC:full gc次数。

参数-gcutil

这里写图片描述

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
E:新生代eden使用空间大小(百分比);
O:老年代使用空间大小(百分比);
P:永久代使用空间大小(百分比);
YGC:minor gc次数;
YGCT:minor gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gccause

这里写图片描述

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
E:新生代eden使用空间大小(百分比);
O:老年代使用空间大小(百分比);
P:永久代使用空间大小(百分比);
YGC:minor gc次数;
YGCT:minor gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间;
LGCC:最后一次垃圾回收的原因;
GCC:本次垃圾回收的原因。

参数-gcnew

这里写图片描述

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
S0U:新生代第一个survivor(from survivor)使用空间大小(字节);
S1U:新生代第二个survivor(to survivor)的使用空间大小(字节);
TT:对象在新生代存活的次数;
MTT:对象在新生代存活的最大次数;
DSS:期望的survivor大小(字节);
EC:新生代eden空间大小(字节);
EU:新生代eden空间使用的大小(字节);
YGC:minor gc次数;
YGCT:minor gc占用时间。

参数-gcnewcapacity

这里写图片描述

NGCMN:新生代初始化(最小)空间大小(字节);
NGCMX:新生代最大空间大小(字节);
NGC:当前新生代空间大小(字节);
S0CMX:新生代第一个survivor(from survivor)的最大空间大小(字节);
S0C:当前新生代第一个survivor(from survivor)的空间大小(字节);
S1CMX:新生代第二个survivor(to survivor)的最大空间大小(字节);
S1C:当前新生代第二个survivor(to survivor)的空间大小(字节);
ECMX:新生代eden最大空间大小(字节);
EC:当前新生代eden空间大小(字节);
YGC:minor gc次数;
FGC:full gc次数。

参数-gcold

这里写图片描述

PC:永久代空间大小(字节);
PU:永久代使用空间大小(字节);
OC:老年代空间大小(字节);
OU:老年代使用空间大小(字节);
YGC:minor gc次数;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gcoldcapacity

这里写图片描述

OGCMN:老年代初始化(最小)空间大小(字节);
OGCMX:老年代最大空间大小(字节);
OGC:老年代当前新生成的空间大小 (字节);
OC:老年代空间大小(字节);
YGC:minor gc数;
FGC:full gc数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gcpermcapacity

这里写图片描述

PGCMN:永久代初始化(最小)空间大小(字节);
PGCMX:永久代最大空间大小(字节);
PGC:永久代当前新生成的空间大小(字节);
PC:永久代空间大小(字节);
YGC:minor gc数;
FGC:full gc数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-compiler

这里写图片描述

Compiled:JIT编译执行次数;
Failed:JIT编译执行失败次数;
Invalid:JIT编译执行失效次数;
Time:JIT编译执行时间;
FailedType:最后一个JIT编译失败类型;
FailedMethod:最后一个JIT编译失败的类和方法。

参数-printcompilation

这里写图片描述

Compiled:JIT编译执行次数;
Size:方法生成的字节码大小(字节);
Type:编译类型;
Method:类名和方法名用来标识编译的方法。
类名使用/做为一个命名空间分隔符。
方法名是给定类中的方法。
上述格式是由-XX:+PrintComplation选项进行设置的。

猜你喜欢

转载自blog.csdn.net/kid_2412/article/details/51879805