JVM性能调优工具
-
jstat
# jstat -gc 111 1000 5 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 1536.0 1536.0 1024.0 0.0 83968.0 83835.1 223232.0 88625.2 80916.0 79415.1 10300.0 10013.0 1502 13.307 3 3.091 16.397 1536.0 1536.0 0.0 1136.0 83968.0 2481.9 223232.0 88625.2 80916.0 79415.1 10300.0 10013.0 1503 13.311 3 3.091 16.401 1536.0 1536.0 0.0 1136.0 83968.0 3731.4 223232.0 88625.2 80916.0 79415.1 10300.0 10013.0 1503 13.311 3 3.091 16.401 1536.0 1536.0 0.0 1136.0 83968.0 4974.7 223232.0 88625.2 80916.0 79415.1 10300.0 10013.0 1503 13.311 3 3.091 16.401 1536.0 1536.0 0.0 1136.0 83968.0 7222.9 223232.0 88625.2 80916.0 79415.1 10300.0 10013.0 1503 13.311 3 3.091 16.401
jstat -gc 111 1000 5 每隔1000ms采样一次,共采样5次。
- S0C、S1C、S0U、S1U:young代的Survivor 0/1区容量(Capacity)和使用量(Used)。0是FromSurvivor,1是ToSurvivor。
- EC、EU:Eden区容量和使用量
- OC、OU:老年代容量和使用量
- MC、MU:元数据区(Metaspace)已经committed的内存空间和使用量
- CCSC、CCSU:压缩Class(Compressed class space)committed的内存空间和使用量。
- YGC、YGT:young代GC次数和GC总耗时
- FGC、FGCT:Full GC次数和Full GC总耗时
- GCT:GC总耗时
jstat [option]参数
-class :监视类装载、卸载数量、总空间及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区、2个Survivor区、老年代、永久代等的容量
-gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 (这是博主在性能监控中最常用的选项)
-gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC的状况
-gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间
-gcold 监视老年代GC的状况
-gcoldcapacity 监视内容与——gcold基本相同,输出主要关注使用到的最大和最小空间
-gcpermcapacity 输出永久代使用到的最大和最小空间