jstat命令介绍jstat(JavaVirtualMachineStatisticsMonitoringTool)是JDK提供的一个命令行工具,可以监控Java虚拟机的各种运行状态信息。可以显示Java虚拟机中的类加载、内存、垃圾回收、即时编译等运行状态信息。jstat命令参数命令语法:jstatgeneralOptionsjstatoutputOptions[-t][-h][[]]命令参数说明:generalOptions:通用选项,如果指定通用选项,您不能指定任何其他选项或参数。它包括以下两个选项:-help:显示帮助信息。-options:显示输出选项参数列表。outputOptions:输出选项,指定显示某类Java虚拟机信息。-t:将时间戳列显示为输出的第一列。此时间戳是自Java虚拟机开始运行以来的秒数。-hn:每n行显示标题,n为正整数。默认值为0,即表头在第一行数据中只显示一次。vmid:虚拟机的唯一ID(LVMID,LocalVirtualMachineIdentifier)。如果查看本机,是Java进程的进程ID。interval:显示信息的时间间隔,默认为毫秒。也可以指定秒为单位,例如:1s。如果指定了该参数,则jstat命令会每隔这段时间显示一次统计信息。count:显示数据的次数,默认值为无穷大,这将导致jstat命令显示统计信息,直到目标JVM终止或jstat命令终止。输出选项如果不指定通用选项(generalOptions),则可以指定输出选项(outputOptions)。输出选项决定了jstat命令显示的内容和格式,如下:-class:显示类加载、卸载数量、总空间、加载耗时统计。-compiler:显示即时编译的方法、耗时等信息。-gc:显示堆各个区域的内存使用情况和垃圾回收统计信息。-gccapacity:显示堆的各个区域的容量以及对应空间的统计信息。-gcutil:显示有关垃圾收集统计信息的摘要。-gccause:显示有关垃圾收集统计信息的摘要(与-gcutil相同),以及最近和当前垃圾收集的原因。-gcnew:显示新生代的垃圾收集统计信息。-gcnewcapacity:显示新生代大小及其对应空间的统计信息。-gcold:显示老年代和元空间的垃圾收集统计信息。-gcoldcapacity:显示老年代的大小统计信息。-gcmetacapacity:显示有关元空间大小的统计信息。-printcompilation:显示即时编译方法的统计信息。jstat命令的显示输出被格式化为由空格分隔的列的表格。接下来,让我们看一下每个输出选项的列名。-class选项Loaded:加载类的数量。Bytes:加载类占用的字节数。Unloaded:卸载类的数量。Bytes:卸载类占用的字节数。时间:执行类加载和卸载操作所花费的时间。例如:-compileroptionCompiled:执行的编译任务数。失败:失败的编译任务数。无效:无效的编译任务数。Time:执行编译任务所花费的时间。FailedType:上次编译失败的编译类型。FailedMethod:上次编译失败的类名和方法。例如:-gc选项S0C:年轻代中第一个Survivor区的容量,单位为KB。S1C:年轻代中第二个Survivor区的容量,单位为KB。S0U:年轻代中第一个Survivor区的使用大小,单位为KB。S1U:年轻代中第二个Survivor区的使用大小,单位为KB。EC:年轻代中Eden区的容量,单位为KB。EU:Eden区在年轻代中使用的大小,单位为KB。OC:老年代的容量,以KB为单位。OU:老年代使用的大小,以KB为单位。MC:元空间的容量,以KB为单位。MU:元空间的使用大小,单位为KB。CCSC:压缩等级的容量,单位为KB。CCSU:压缩类的使用大小,以KB为单位。YGC:YoungGC的数量。YGCT:YoungGC花费的时间。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。例如:-gccapacityoptionNGCMN:年轻代的最小容量,以KB为单位。NGCMX:新生代的最大容量,单位为KB。NGC:当前年轻代的容量,单位为KB。S0C:年轻代中第一个Survivor区的容量,单位为KB。S1C:年轻代中第二个Survivor区的容量,单位为KB。EC:年轻代中Eden区的容量,单位为KB。OGCMN:老年代的最小容量,以KB为单位。OGCMX:老年代的最大容量,单位为KB。OGC:当前老年代的容量,单位为KB。OC:当前老年代的容量,单位为KB。MCMN:元空间的最小容量,单位为KB。MCMX:元空间的最大容量,以KB为单位。MC:当前元空间的容量,单位为KB。CCSMN:压缩等级的最小容量,单位为KB。CCSMX:压缩等级的最大容量,以KB为单位。CCSC:当前压缩等级的容量,单位为KB。YGC:YoungGC的数量。FGC:FullGC的次数。例如:-gcutiloptionS0:年轻代中第一个Survivor区大小占当前容量的百分比。S1:年轻代中第二个Survivor区使用的大小占当前容量的百分比。E:Eden区已用大小占当前容量的百分比。O:老年代使用的大小占当前容量的百分比。M:元空间使用大小占当前容量的百分比。CCS:压缩类使用大小占当前容量的百分比。YGC:YoungGC的数量。YGCT:YoungGC花费的时间。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。例如:-gccause选项S0:年轻代中第一个Survivor区使用的大小占当前容量的百分比。S1:年轻代中第二个Survivor区使用的大小占当前容量的百分比。E:Eden区已用大小占当前容量的百分比。O:老年代使用的大小占当前容量的百分比。M:元空间使用大小占当前容量的百分比。CCS:压缩类使用大小占当前容量的百分比。YGC:YoungGC的数量。YGCT:YoungGC花费的时间。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。LGCC:上次垃圾回收的原因。GCC:当前垃圾收集的原因。例如:-gcnewoptionS0C:年轻代中第一个Survivor区的容量,单位为KB。S1C:年轻代中第二个Survivor区的容量,单位为KB。S0U:年轻代中第一个Survivor区的使用大小,单位为KB。S1U:年轻代中第二个Survivor区的使用大小,单位为KB。TT:对象在新生代存活的次数。MTT:对象在新生代存活的最大次数DSS:Survivor区的预期大小,单位为KB。EC:年轻代中Eden区的容量,单位为KB。EU:Eden区在年轻代中使用的大小,单位为KB。YGC:YoungGC的数量。YGCT:YoungGC花费的时间。例如:-gcnewcapacity选项NGCMN:年轻代的最小容量,单位为KB。NGCMX:新生代的最大容量,单位为KB。NGC:当前年轻代的容量,单位为KB。S0CMX:新生代中第一个Survivor区的最大容量,单位为KB。S0C:年轻代中第一个Survivor区的容量,单位为KB。S1CMX:年轻代中第二个Survivor区的最大容量,单位为KB。S1C:年轻代中第二个Survivor区的容量,单位为KB。ECMX:年轻代中Eden区的最大容量,单位为KB。EC:年轻代中Eden区的容量,单位为KB。YGC:YoungGC的数量。FGC:FullGC的次数。例如:-gcold选项MC:元空间的容量,以KB为单位。MU:元空间的使用大小,单位为KB。CCSC:压缩等级的容量,单位为KB。CCSU:压缩类的使用大小,以KB为单位。OC:老年代的容量,以KB为单位。OU:老年代使用的大小,以KB为单位。YGC:YoungGC的数量。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。例如:-gcoldcapacityoptionOGCMN:老年代的最小容量,以KB为单位。OGCMX:老年代的最大容量,单位为KB。OGC:当前老年代的容量,单位为KB。OC:当前老年代的容量,单位为KB。YGC:YoungGC的数量。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。例如:-gcmetacapacity选项MCMN:元空间的最小容量,以KB为单位。MCMX:元空间的最大容量,以KB为单位。MC:当前元空间的容量,单位为KB。CCSMN:压缩等级的最小容量,单位为KB。CCSMX:压缩等级的最大容量,以KB为单位。YGC:YoungGC的数量。FGC:FullGC的次数。FGCT:FullGC所花费的时间。GCT:GC花费的总时间。例如:-printcompilationoptionCompiled:最近一次编译方式执行的编译任务数。Size:最近编译的方法的字节码中的字节数。类型:最近一次编译方法的编译类型。方法:最近编译的方法的类名和方法名。例如:最后,谢谢你这么帅,给我点赞和关注。