JVM

JDK-命令行工具介绍3

"了解jstat的用法"

Posted by Dunno on August 1, 2016

目录

背景介绍

线上经常出现各式各样的问题,通过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>]]

jstat_输出 一张图理解用法

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.