admin 管理员组

文章数量: 887007

Java命令 jstat 详解

jstat(Java Virtual Machine statistics monitoring tool)——查看堆内各个部分的使用量,以及加载类的数量

命令格式:jstat [generalOption | outputOptions vmid [ interval [ s|ms ] [ count ] ] ]

注意:该命令老一点的系统中是不可用,如Windows 98和Windows ME。

注意:下面部分操作截图中,使用的jdk8版本

 

generalOption:简单通用命令行选项 (-help,-options, or -version)

-help:展示命令相关信息

-version:展示版本信息

-options:显示统计选项的列表。 请参阅下面的输出选项部分

outputOptions:

-statOption:

class:关于类加载器行为的统计信息

compiler:HotSpot即时编译器行为的统计信息

gc:垃圾回收堆行为的统计信息

gacapacity:统计内存三代(young、old、permanent)及他们空间信息

gccause:垃圾收集统计(与-gcutil相同)的摘要,以及最后一个和当前(如果适用)垃圾回收事件的cause

gcnew:新生代的统计信息

gcnewcapacity:新生代及其空间使用情况

gcold:老年代和永久代的统计信息

gcoldcapacity:老年代容量的使用情况

gcpermcapacity:永久代容量的使用情况

gcutil:垃圾回收统计

printcompilation:hotSpot编译器方法统计

-h n:设置隔n行显示header

-t:第一列显示一个时间戳,当前时间与jvm启动时间的时间间隔

-J (option):将选项传递给java程序(例如:-J -Xms48m 将启动内存设置为48兆字节。 -J通过是一个通用的约定执行用Java编写的应用程序的底层VM选项)

下面对于statOption做详细的说明,在使用的过程中,打印的信息表示什么意思

class:类加载统计

jstat -class 4718

Loaded  Bytes  Unloaded  Bytes     Time     

3297      6221.3     0           0.0         1.46

Loaded:加载class的数量

Bytes:所占用空间大小

Unloaded:未加载数量

Bytes:未加载占用空间

Time:花费在执行类加载和未加载操作上的时间

compiler:HotSpot即时编译器行为的统计信息

Compiled:编译数量

Failed:失败数量

Invalid:不可用数量

Time:编译花费的时间

FailedType:最近一次编译失败的编译类型(网上找了一大圈,发现和我这票相关的文章,几乎内容一模一样,可就是没有这个FailedType字段值的解释,难道真是“天下文章一大抄” ?。无奈,找官方文档,也没找出是啥意思。好吧,我也不纠结了,官方文档地址是:.html#compiler_option  如果有知道的朋友,请在评论区告诉我,谢谢!)

FailedMethod:最近一次编译失败的类名和方法名

gc:垃圾回收堆行为的统计信息

jstat -gc 4718

图1

S0C:survivor 0的容量(KB)

S1C:survivor 1的容量(KB)

S0U:survivor 0已使用情况(KB)

S1U:survivor 1已使用情况(KB)

EC:Eden的空间容量(KB)

EU:Eden已使用情况(KB)

OC:老年代空间容量(KB)

OU:老年代已使用大小(KB)

MC:方法区空间容量(KB)

MU:方法区使用大小(KB)

CCSC:压缩类空间大小

CCSU:压缩类空间使用大小

YGC:新生代垃圾回收次数

YGCT:新生代垃圾回收消耗时间

FGC:full gc发生次数

FGCT:full gc消耗时间

GCT:垃圾回收消耗总时间

gacapacity:统计内存三代(young、old、permanent)及他们空间使用信息

jstat -gccapacity 4718

图2

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:当前新生代容量

S0C:survivor 0的容量

S1C:survivor 1的容量

EC:Eden的空间容量

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:当前老年代容量

OC: 当前老年代空间大小

MCMN: 永久代最小容量

MCMX:永久代最大容量

MC:当前元数据空间大小

CCSMN:最小压缩类空间大小

CCSMX:最大压缩类空间大小

CCSC:当前压缩类空间大小

YGC:年轻代gc次数

FGC:老年代GC次数

gcutil:垃圾回收统计

jstat -gcutil 4718 500 10

图3

S0:survivor 0当前使用比例

S1:survivor 1当前使用比例

E:永久代使用比例

O:老年代使用比例

M:元数据区使用比例

CCS:压缩使用比例

YGC:新生代垃圾回收次数

FGC:老年代垃圾回收次数

FGCT:老年代垃圾回收消耗时间

GCT:垃圾回收消耗总时间

gccause:垃圾收集统计(与-gcutil相同)的摘要,以及上次和当前(如果适用)垃圾回收事件的cause

jstat -gccause 4718 500 10

图4

LGCC:上次垃圾回收的cause

GCC:当前垃圾回收的cause

gcnew:新生代统计

jstat -gcnew 4718 500 10

图5

S0C:survivor 0的容量大小

S1C:survivor 1的容量大小

S0U:survivor 0的使用大小

S1U:survivor 1的使用大小

TT: 对象在新生代存活的次数

MTT: 对象在新生代存活的最大次数

DSS:期望的survivor大小

EC:Eden的容量大小

EU:Eden的使用大小

YGC:新生代垃圾回收次数

YGCT:新生代垃圾回收消耗时间

gcnewcapacity:新生代空间大小统计

jstat -gcnewcapacity 4718 500 10

图6

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:当前新生代容量

S0CMX:最大survivor 0大小

S0C:当前survivor 0大小

S1CMX:最大survivor 1大小

S1C:当前survivor 1大小

ECMX:最大Eden区空间大小

EC:当前Eden区空间大小

YGC:新生代垃圾回收次数

FGC:老年代回收次数

gcold:老年代和永久代的统计信息

jstat -gcold 4718 500 10

图7

MC:方法区大小

MU:方法区使用大小

CCSC:压缩类空间大小

CCSU:压缩类空间使用大小

OC:老年代大小

OU:老年代使用大小

YGC:新生代垃圾回收次数

FGC:老年代垃圾回收次数

FGCT:老年代垃圾回收消耗时间

GCT:垃圾回收消耗总时间

gcoldcapacity:新生代及其空间使用情况

jstat -gcoldcapacity 4718 500 10

图8

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:当前老年代大小

OC:老年代大小

YGC:新生代垃圾回收次数

FGC:老年代垃圾回收次数

FGCT:老年代垃圾回收消耗时间

GCT:垃圾回收消耗总时间

gcpermcapacity:永久代容量的使用情况

PGCMN:perm代中最小容量 (KB)

PGCMX:perm代的最大容量 (KB)  

PGC:perm代当前新生成的容量 (KB)

PC:Perm(持久代)的容量 (KB)

YGC:从应用程序启动到采样时新生代中gc次数

FGC:从应用程序启动到采样时老年代(全gc)gc次数

FGCT:从应用程序启动到采样时老年代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

printcompilation:hotSpot编译器方法统计

jstat -printcompilation 4718 500 10

图9

Compiled:最近编译方法的数量

Size:最近编译方法的字节码数量

Type:最近编译方法的编译类型

Method:方法名标识



作者:smallAttr
链接:
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文标签: Java命令 jstat 详解