jstat|jstat 查看GC
Jstat 是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
参数解释:
Options — 选项,我们一般使用 -gcutil 查看gc情况
vmid — VM的进程号,即当前运行的java进程号
【jstat|jstat 查看GC】interval[s|ms] —— 间隔时间,单位为秒或者毫秒,默认为ms。必须是正整型。
count — 打印次数,如果缺省则打印无数次
具体参数:-class: 统计class loader 行为信息-compiler: 统计编译行为信息-gc:统计jdk gc时heap信息-gccapacity:统计不同的generations(新生代、老生代、永久代)相应的heap容量信息-gccause:统计gc的情况,以及引起gc的事情。同-gcutil-gcnew:统计新生代的gc情况-gcnewcapacity:统计新生代gc时heap的容量信息-gcold:统计老生代的gc情况-gcoldcapacity:统计老生代gc时heap容量信息-gcpermcapacity:统计永久代gc时的容量信息-gcutil:统计heap的gc情况
jstat -gcutil 16057 100010
S0S1EOMCCSYGCYGCTFGCFGCTGCT
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
0.00 100.0025.8186.4298.4597.86115717.725399910.176927.901
S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
这里需要注意的是, 因为G1的堆布局跟HotSpot VM里其它GC不一样——它只有一组逻辑上的survivor space,而不像其它HotSpot GC一样有两段明确、固定的地址空间用作survivor space——所以用jstat看G1的话肯定是survivor space 0显示0%,survivor space 1显示100%。
类加载统计:
jstat -class 77953
LoadedBytesUnloadedBytesTime
16213000.700.00.76
Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间
jstat -compiler 77953
Compiled Failed InvalidTimeFailedType FailedMethod
464000.34
Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法
jstat -gc 77953
S0CS1CS0US1UECEUOCOUMCMUCCSCCCSUYGCYGCTFGCFGCTGCT
10752.0 10752.00.00.065536.028931.0175104.00.04480.0 789.6384.076.400.00000.0000.000
S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
堆内存统计
jstat -gccapacity 77953
NGCMNNGCMXNGCS0CS1CECOGCMNOGCMXOGCOCMCMNMCMXMCCCSMNCCSMXCCSCYGCFGC
87040.0 1397760.087040.0 10752.0 10752.065536.0175104.02796544.0175104.0175104.00.0 1056768.04480.00.0 1048576.0384.000
demo for i in
seq 1 99999
;
do jstat -gcutil 89;
done > /tmp/gc.log等价于 jstat -gcutil 89 1000 99999
推荐阅读
- Linux下面如何查看tomcat已经使用多少线程
- MySql数据库备份与恢复
- 如何在手机上查看测试vue-cli构建的项目
- 类的加载过程
- crontab无法查看,原来是密码过期了
- adb|adb 相关命令
- (HTML小白)如何查看浏览器header
- Windows--如何查看硬盘分区表类型
- Ubuntu查看硬件配置
- 查看dsym的uuid