jstat工具
介绍
jstat是JDK自带的一个JVM统计监控工具,利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括堆大小和应用程序GC状况的监控。
安装方式
完整安装JDK后自带jstat工具,无需单独安装,一般位于Java的bin目录下。
使用方式
jstat是个非常强大的命令,可选项多,可以详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程pid和所选参数。
命令格式:jstat [参数] <pid>
一级参数主要功能如下:
参数 |
说明 |
---|---|
jstat -class <pid> |
显示加载class的数量,及所占空间等信息。 |
jstat -compiler <pid> |
显示虚拟机实时编译的数量等信息。 |
jstat -gc <pid> |
显示GC的信息,查看GC的次数及时间。 |
jstat -gccapacity <pid> |
显示虚拟机内存中三代对象的使用和占用大小。 |
jstat -gcutil <pid> |
显示GC的统计信息。 |
jstat -gcnew <pid> |
显示年轻代对象的信息。 |
jstat -gcnewcapacity <pid> |
显示年轻代对象信息及其内存占用情况。 |
jstat -gcold <pid> |
显示老年代对象的信息。 |
jstat -gcpermcapacity <pid> |
显示永久代对象的信息及其占用量。 |
jstat -printcompilation <pid> |
显示当前虚拟机的执行信息。 |
GC优化中,利用jstat -gc <pid>较多,其输出参数及含义如下:
参数 |
说明 |
---|---|
S0C |
年轻代中第一个survivor区的容量(字节) |
S1C |
年轻代中第二个survivor区的容量(字节) |
S0U |
年轻代中第一个survivor区目前已使用空间(字节) |
S1U |
年轻代中第二个survivor区目前已使用空间(字节) |
EC |
年轻代中Eden区的容量 (字节) |
EU |
年轻代中Eden区目前已使用空间(字节) |
OC |
老年代的容量(字节) |
OU |
老年代目前已使用空间(字节) |
PC |
Perm(永久代)的容量(字节) |
PU |
Perm(永久代)目前已使用空间(字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
YGCT |
从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC |
从应用程序启动到采样时老年代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时老年代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
输出格式:
# jstat -gc 2342
sh-4.4# jstat -gc 159 1000 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 6144.0 13824.0 6128.8 0.0 702464.0 590176.1 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314 6144.0 13824.0 6128.8 0.0 702464.0 590237.9 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314 6144.0 13824.0 6128.8 0.0 702464.0 592583.5 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314 6144.0 13824.0 6128.8 0.0 702464.0 592715.7 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314 6144.0 13824.0 6128.8 0.0 702464.0 592715.7 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314 6144.0 13824.0 6128.8 0.0 702464.0 592715.7 497664.0 468611.6 139032.0 131745.2 15664.0 14404.5 151478 1673.004 1057 343.310 2016.314