jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。
命令格式:
jstat[option vmid[interval[s|ms][count]]]
如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应当是:
[protocol:][//]lvmid[@hostname[:port]/servername]
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要每250毫秒查询一次进程2764垃圾收集状况,一共查询20次,那命令应当是:
jstat -gc 2764 250 20
选项option代表着用户希望查询的虚拟机信息,主要分为3类:类装载、垃圾收集、运行期编译状况,具体选项及作用请参考表中的描述。
例子:
C:\Program Files\Java\jdk1.8.0_66\bin>jstat -gcutil 5760
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 80.59 19.05 98.18 94.86 7 0.126 2 0.199 0.326
这台服务器:
新生代Eden区(E,表示Eden)使用了80.59%的空间,
两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面都是空的,
老年代(O,表示Old)使用了19.05%的空间。
程序运行以来共发生Minor GC(YGC,表示Young GC)7次,总耗时0.126秒,发生Full GC(FGC,表示FullGC)2次,Full GC总耗时(FGCT,表示Full GC Time)为0.199秒,所有GC总耗时(GCT,表示GC Time)为0.326秒