目录
背景介绍
线上经常出现各式各样的问题,通过jdk自带的命令行工具,能帮助我们更加快速的定位到故障。
jdk 为我们提供了很多命令行工具,其中经常使用到的有监控工具(jps,jstat,statd)和故障排查工具(jinfo,jhat,jmap,jsadebugd,jstack)
这次我们介绍非常非常常用的命令:jstat
参考资料
http://docs.oracle.com/javase/7/docs/technotes/tools/
jstat命令介绍
jstack jvm监控统计工具-可以用于观察jvm运行时区域的数据
用法
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
一张图理解用法
options
使用jstat -options可以查看支持的选项
$ jstat -options
- -class 显示classLoader的相关信息
- -compiler 显示JIT编译的相关信息
- -gc 显示gc相关信息
- -gccapacity 显示gc容量信息
- -gccause 显示垃圾回收相关信息,同时显示最后一次或者当前正在发生的垃圾回收的诱发原因
- -gcnew 显示新生代信息
- -gcnewcapacity 显示新生代容量和大小情况
- -gcold 显示老年代和永久代情况
- -gcoldcapacity 显示老年代大小和容量信息
- -gcpermcapacity 显示永久代大小和容量信息
- -gcutil 显示垃圾收集信息(这个用的最多)
- -printcompilation 输出JIT编辑的方法信息
jstat -gcutil 输出解释
更多解释请看http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
我们这里介绍一下用的最多的命令的输出
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
413446.8 40.62 0.00 58.40 36.91 - - 174 17.153 1 1.798 18.952
413447.8 40.62 0.00 58.51 36.91 - - 174 17.153 1 1.798 18.952
- S0 S0占对应分配空间的利用百分比(理解S0,S1需要关注一下垃圾回收算法)
- S1 S1占对应分配空间的利用百分比
- E 新生代占对应分配空间的利用百分比
- O 老年代占对应分配空间的利用百分比
- P 永久代占对应分配空间的利用百分比
- YGC young gc的次数
- YGCT young gc花费的时间
- FGC full gc次数
- FGCT full gc花费的时间
- GCT Total garbage collection time.