Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
常用命令:jstat -gc -t
参数解释:-gc : 表示显示与垃圾收集相关的统计信息
-t : 显示时间戳(从JVM启动以来的)
示例:jstat -gc -t 1 1000 5 表示对jvm进程Id为1的进程,每个1秒统计一次gc信息,统计5次结束
Timestamp-自目标JVM启动时间以来的时间(以秒为单位)。
S0C –幸存者0区域的容量,以KB为单位
S1C –幸存者1区域的容量,以KB为单位
S0U –幸存者0区域使用的空间以KB为单位
S1U –幸存者1区域以KB为单位使用空间
EC –伊甸园区的容量(KB)
EU–伊甸园地区的已利用空间(以KB为单位)
OC –老年代区域容量(KB)
OU –老年代区域的已利用空间,以KB为单位
MC –元空间区域容量(KB)
MU –元空间区域以KB为单位的使用空间
CCSC –压缩类空间区域的容量,以KB为单位
CCSU –压缩类空间区域以KB为单位使用空间
YGC –迄今为止发生的年轻GC事件的数量
YGCT –到目前为止,年轻GC花费的时间
FGC –迄今为止已发生的完全GC事件的数量
FGCT –到目前为止已花费的完整GC时间
GCT –到目前为止所花费的GC时间总量(基本上是YGCT + FGCT)
例如:
Timestamp S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
893677.6 1024.0 1024.0 320.0 0.0 28160.0 5606.3 142336.0 95712.6 115200.0 110769.0 13056.0 12220.6 1134 27.800 5 1.502 29.301
时间戳记 | 自JVM启动以来的时间(以秒为单位) | = 893677.6秒 |
---|---|---|
年轻一代的容量 | 青年一代由幸存者0,幸存者1,伊甸园区组成。因此,容量为: S0C + S1C + EC | = 1024.0 + 1024.0 + 28160.0 = 30208 kb = 29.5 mb |
年轻一代利用尺寸 | S0U + S1U + EU | = 320 + 0 + 5606.3 = 5926.3 kb = 5.78 mb |
老一代容量 | OC | = 142336.0 kb = 139 mb |
老一代利用尺寸 | OU | = 95712.6 kb = 93.47mb |
元空间容量 | MC | = 115200.0 kb = 112.5 mb |
元空间利用的大小 | MU | = 110769.0 kb = 108.17mb |
年轻GC计数 | YGC | = 1134 |
Young GC**花费时间** | YGCT | = 27.800秒 |
FullGC计数 | FGC | = 5 |
FullGC花费时间 | FGCT | = 1.502秒 |
在GC中花费的总时间 | GCT | = 29.301秒 |
像上面那样分析jstat的输出很不方便,太慢了,很多地方需要自己去换算单位去计算,为了方便分析可以使用gc分析工具:gceasy
它可以对gc日志进行分析,也可以对jstat等jvm命令的输出进行分析,可选择上传文件也可以选择Raw,粘贴文本的方式进行分析,点击Analyze即可。
示例:我这里使用jstat生成30条记录。
# jstat -gc -t 1 1000 30
Timestamp S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
895690.6 1024.0 1024.0 0.0 400.0 28160.0 9256.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895691.6 1024.0 1024.0 0.0 400.0 28160.0 9586.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895692.6 1024.0 1024.0 0.0 400.0 28160.0 9586.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895693.6 1024.0 1024.0 0.0 400.0 28160.0 9586.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895694.6 1024.0 1024.0 0.0 400.0 28160.0 9586.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895695.6 1024.0 1024.0 0.0 400.0 28160.0 9589.2 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895696.6 1024.0 1024.0 0.0 400.0 28160.0 9929.3 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895697.6 1024.0 1024.0 0.0 400.0 28160.0 9929.3 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895698.6 1024.0 1024.0 0.0 400.0 28160.0 9929.3 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895699.6 1024.0 1024.0 0.0 400.0 28160.0 9929.3 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895700.6 1024.0 1024.0 0.0 400.0 28160.0 9929.3 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895701.6 1024.0 1024.0 0.0 400.0 28160.0 10218.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895702.6 1024.0 1024.0 0.0 400.0 28160.0 10218.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895703.6 1024.0 1024.0 0.0 400.0 28160.0 10218.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895704.6 1024.0 1024.0 0.0 400.0 28160.0 10218.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895705.6 1024.0 1024.0 0.0 400.0 28160.0 10222.7 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895706.6 1024.0 1024.0 0.0 400.0 28160.0 10558.6 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895707.6 1024.0 1024.0 0.0 400.0 28160.0 10558.6 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895708.6 1024.0 1024.0 0.0 400.0 28160.0 10558.6 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895709.6 1024.0 1024.0 0.0 400.0 28160.0 10560.7 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895710.6 1024.0 1024.0 0.0 400.0 28160.0 10560.7 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895711.6 1024.0 1024.0 0.0 400.0 28160.0 10939.2 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895712.6 1024.0 1024.0 0.0 400.0 28160.0 10945.4 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895713.6 1024.0 1024.0 0.0 400.0 28160.0 10947.4 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895714.6 1024.0 1024.0 0.0 400.0 28160.0 10949.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895715.6 1024.0 1024.0 0.0 400.0 28160.0 10949.5 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895716.6 1024.0 1024.0 0.0 400.0 28160.0 11315.8 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895717.6 1024.0 1024.0 0.0 400.0 28160.0 11317.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895718.6 1024.0 1024.0 0.0 400.0 28160.0 11317.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
895719.6 1024.0 1024.0 0.0 400.0 28160.0 11317.9 142336.0 95744.6 115200.0 110774.6 13056.0 12220.6 1139 27.932 5 1.502 29.434
然后将以上生成的数据复制到gceasy即可进行分析:
生成报告点击查看
部分报告截图:
可以看到将各个空间大小,使用率,吞吐率,gc情况等等都统计分析出来了。
这里分析出来的gc时间、吞吐量、空间占用等指标要达到多少才算合格呢?这个和实际的业务需求有很大关系,有的应用吞吐量需要97%以上,有的则95%就满足了。一般来说,吞吐量应该达到95%以上,gc平均时间为毫秒级,如果gc平均时间达到几秒肯定是不正常了,详细可以参考gceasy的关键性能指标