添加VX:ruyuan0220,回复:CSDN,领取更多精品学习资料!
目录
功能强大的jstat
平时我们对运行中的系统,如果要检查他的JVM的整体运行情况,比较实用的工具之一,就是jstat
他可以轻易的让你看到当前运行中的系统,他的JVM内的Eden、Survivor、老年代的内存使用情况,还有Young GC和Full gC的执行次数以及耗时。
通过这些指标,我们可以轻松的分析出当前系统的运行情况,判断当前系统的内存使用压力以及GC压力,还有就是内存分配是否合理。下面我们就一点点来看看这个jstat工具的使用。
jstat -gc PID
首先第一个命令,就是在你们的生产机器linux上,找出你们的Java进程的PID,这个大家自行百度一下即可,用jps命令就可以看到。
接着就针对我们的Java进程执行:jstat -gc PID。这就可以看到这个Java进程(其实本质就是一个JVM)的内存和GC情况了。
运行这个命令之后会看到如下列,给大家解释一下:
- S0C:这是From Survivor区的大小
- S1C:这是To Survivor区的大小
- S0U:这是From Survivor区当前使用的内存大小
- S1U:这是To Survivor区当前使用的内存大小
- EC:这是Eden区的大小
- EU:这是Eden区当前使用的内存大小
- OC:这是老年代的大小
- OU:这是老年代当前使用的内存大小
- MC:这是方法区(永久代、元数据区)的大小
- MU:这是方法区(永久代、元数据区)的当前使用的内存大小
- YGC:这是系统运行迄今为止的Young GC次数
- YGCT:这是Young GC的耗时