jstat:虚拟机统计信息监控工具
属性 | 说明 |
---|
Options | 选项,我们一般使用 -gcutil 查看gc情况 |
vmid | VM的进程号,即当前运行的java进程号 |
interval | 间隔时间,单位为秒或者毫秒 |
count | 打印次数,如果缺省则打印无数次 |
jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选项工具。
jstat命令格式为:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
参数解释:
属性 | 说明 |
---|
Options | 选项,我们一般使用 -gcutil 查看gc情况 |
vmid | VM的进程号,即当前运行的java进程号 |
interval | 间隔时间,单位为秒或者毫秒 |
count | 打印次数,如果缺省则打印无数次 |
选项 | 作用 |
---|
-class | 监控类装载、卸载数量、总空间及类装载所耗费的时间 |
-gc | 监控Java堆状况,包括Eden区、2个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
-gccapacity | 监控内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间 |
-gcutil | 监控内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause | 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因 |
-gcnew | 监控新生代GC的状况 |
-gcnewcapacity | 监控内容与-gcnew基本相同,输出主要关注使用到的最大与最小空间 |
-gcold | 监控老年代GC的状况 |
-gcoldcapacity | 监控内容与-gcold基本相同,输出主要关注使用到的最大与最小空间 |
-gcpermcapacity | 监控永久代使用到的最大和最小空间 |
-compiler | 输出JIT编译器编译过的方法、耗时等信息 |
-printcompilation | 输出已经被JIT编译的方法 |
jstat工具主要选项
选项 | 作用 |
---|
-class | 监控类装载、卸载数量、总空间及类装载所耗费的时间 |
-gc | 监控Java堆状况,包括Eden区、2个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
-gccapacity | 监控内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间 |
-gcutil | 监控内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause | 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因 |
-gcnew | 监控新生代GC的状况 |
-gcnewcapacity | 监控内容与-gcnew基本相同,输出主要关注使用到的最大与最小空间 |
-gcold | 监控老年代GC的状况 |
-gcoldcapacity | 监控内容与-gcold基本相同,输出主要关注使用到的最大与最小空间 |
-gcpermcapacity | 监控永久代使用到的最大和最小空间 |
-compiler | 输出JIT编译器编译过的方法、耗时等信息 |
-printcompilation | 输出已经被JIT编译的方法 |
STATOPTIONS和输出
下列表格概括了jstat为每个statOption输出的列。
- -class 类加载器的统计信息
列 | 描述 |
---|
Loaded | 加载的类的数量 |
Bytes | 加载的Kbyte数 |
Unloaded | 已卸载的类的数量 |
Bytes | 已卸载的Kbyte数 |
Time | 执行类的加载和卸载操作所耗费的时间 |
- -gc 垃圾回收堆的统计信息
列 | 描述 |
---|
S0C | survivor space 0的当前容量(KB). |
S1C | survivor space 1的当前容量(KB). |
S0U | survivor space 0使用的容量(KB). |
S1U | survivor space 1使用的容量(KB). |
EC | Eden space的当前容量(KB). |
EU | Edenspace的已用容量(KB). |
OC | Oldspace的当前容量(KB). |
OU | Old space的已用容量(KB). |
PC | Permanent space的当前容量(KB). |
PU | Permanentspace的已用容量(KB). |
YGC | Younggeneration的GC事件数量 |
YGCT | Younggeneration的垃圾回收事件 |
FGC | Full GC事件的数量 |
FGCT | Full GC的时间 |
GCT | 总计的垃圾回收时间 |
- -gccapacity 内存池的分代和空间容量Memory Pool Generation and Space Capacities
列 | 描述 |
---|
NGCMN | newgeneration的最小容量(KB). |
NGCMX | newgeneration的最大容量(KB). |
NGC | newgeneration的当前容量(KB). |
S0C | survivor space 0的当前容量(KB). |
S1C | survivor space 1的当前容量(KB). |
EC | Eden space的当前容量(KB). |
OGCMN | Old generation的最小容量(KB). |
OGCMX | Oldgeneration的最大容量(KB). |
OGC | Oldgeneration的当前容量(KB). |
OC | Old space的当前容量(KB). |
PGCMN | Permanentgeneration的最小容量(KB). |
PGCMX | Permanentgeneration的最大容量(KB). |
PGC | Permanentgeneration的当前容量(KB). |
PC | Permanent space的当前容量(KB). |
YGC | Younggeneration的GC事件数 |
FGC | Full GC事件的数量 |
- -gcutil 垃圾回收统计的摘要信息
[root@localhost ~]# jstat -gcutil 29817
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 38.77 100.00 9.00 � 21 1.300 3 0.715 2.015
列 | 描述 |
---|
S0 | Heap上的 Survivor space 0 区已使用空间的百分比 |
S1 | Heap上的 Survivor space 1 区已使用空间的百分比 |
E | Heap上的 Eden space 区已使用空间的百分比 |
O | Heap上的 Old space 区已使用空间的百分比 |
P | Perm space 区已使用空间的百分比 |
YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
YGCT | 从应用程序启动到采样时 Young GC 所用的时间(单位秒) |
FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
FGCT | 从应用程序启动到采样时 Full GC 所用的时间(单位秒) |
GCT | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒) |
结果说明:
列 | 描述 |
---|
S0 | Heap上的 Survivor space 0 区已使用空间的百分比 |
S1 | Heap上的 Survivor space 1 区已使用空间的百分比 |
E | Heap上的 Eden space 区已使用空间的百分比 |
O | Heap上的 Old space 区已使用空间的百分比 |
P | Perm space 区已使用空间的百分比 |
YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
YGCT | 从应用程序启动到采样时 Young GC 所用的时间(单位秒) |
FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
FGCT | 从应用程序启动到采样时 Full GC 所用的时间(单位秒) |
GCT | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒) |
- -gccause 垃圾回收统计,包括GC事件
此选项显示与-gcutil选项相同的垃圾回收统计摘要信息,但却包括最后的和当前的(如适用)垃圾回收事件的原因。除了-gcutil列出的列,此选项还添加了以下列:
列 | 描述 |
---|
LGCC | 最后的垃圾回收的原因 |
GCC | 当前的垃圾回收的原因 |
- -gcnew 新生代(New)的统计信息
列 | 描述 |
---|
S0C | survivor space 0的当前容量(KB). |
S1C | survivor space 1的当前容量(KB). |
S0U | survivor space 0的已用容量(KB). |
S1U | survivor space 1的已用容量(KB). |
TT | 期限阈值 |
MTT | 最大的期限阈值 |
DSS | 所需的幸存者(survivor)大小(KB). |
EC | Eden space的当前容量(KB). |
EU | Eden space的已用容量(KB). |
YGC | Young generation的GC事件数 |
YGCT | Young generation的垃圾回收时间 |
- -gcnewcapacity 新生代(new)的空间大小统计
列 | 描述 |
---|
NGCMN | new generation的最小容量(KB). |
NGCMX | new generation的最大容量(KB). |
NGC | new generation的当前容量(KB). |
S0CMX | survivor space 0的最大容量(KB). |
S0C | survivor space 0的当前容量(KB). |
S1CMX | survivor space 1的最大容量(KB). |
S1C | survivor space 1的当前容量(KB). |
ECMX | Eden space的最小容量(KB). |
EC | Eden space的当前容量(KB). |
YGC | Young generation的GC事件数 |
FGC | Full GC事件的数量 |
- -gcold Old和Permanent Generation的统计信息
列 | 描述 |
---|
PC | permanent space的当前容量(KB). |
PU | Permanent space的已用容量(KB). |
OC | old space的当前容量(KB). |
OU | old space的已用容量(KB). |
YGC | young generation的GC事件数 |
FGC | Full GC事件的数量 |
FGCT | Full GC的时间 |
GCT | 总计的垃圾回收时间 |
- -gcoldcapacity Old Generation的统计信息
列 | 描述 |
---|
OGCMN | old generation的最小容量(KB). |
OGCMX | old generation的最大容量(KB). |
OGC | old generation的当前容量(KB). |
OC | old space的当前容量(KB). |
YGC | young generation的GC事件数 |
FGC | Full GC事件的数量 |
FGCT | Full GC的时间 |
GCT | 总计的垃圾回收时间 |
- -gcpermcapacity Permanent Generation的统计信息
列 | 描述 |
---|
PGCMN | permanent generation的最小容量(KB). |
PGCMX | permanent generation的最大容量(KB). |
PGC | permanent generation的当前容量(KB). |
PC | permanent space的当前容量(KB). |
YGC | young generation的GC事件数 |
FGC | Full GC 事件的数量 |
FGCT | Full GC的时间 |
GCT | 总计的垃圾回收时间 |
- -compiler HotSpot即时(Just-In-Time)编译器的统计信息
列 | 描述 |
---|
Compiled | 已执行的编译任务数 |
Failed | 失败的编译任务数 |
Invalid | 无效的编译任务数 |
Time | 执行编译任务所耗费的时间 |
FailedType | 最后失败的编译的编译类型 |
FailedMethod | 最后失败的编译的类名和方法 |
- -printcompilation HotSpot编译器方法统计
列 | 描述 |
---|
Compiled | 已执行的编译任务数 |
Size | 方法字节码的字节数 |
Type | 编译类型 |
Method | 表示被编译方法的类名和方法名。类名使用"/"替代"."作为命名空间的分隔符。方法名是给定的类的方法。这两个字段的格式与HotSpot选项- XX:+PrintComplation是一致的。 |