jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据,在没有GUI图形界面、只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的常用工具。
jstat命令格式为:
jstat [ option vmid [interval[slms][count]]]
参数interval和count代表查询间隔和次数,如果省略这2个参数,说明只查询一次。假设需要每250毫秒查询一次进程12584垃圾收集状况,一共查询20次,那命令应当是:
jstat -gc 12584 250 20
jstat执行样例
jstat -gcutil 12548
SO S1 E 0 P YGC YGCT
0.00 0.00 7.20 41.42 47.20 16 0.105
FGC FGCT GCT
3 0.482 0.587
查询结果表明:这台服务器的新生代Eden区(E,表示Eden)使用了7.2%的空间,2个Survivor区(SO、S1,表示Survivor0、Survivor1)里面都是空的,老年代(O,表示Old)和永久代(P,表示Permanent)则分别使用了41.42%和47.20%的空间。程序运行以来共发生Minor GC(YGC,表示Young GC)16次,总耗时0.105秒;发生FullGC(FGC.表示FullGC)3次,总耗时(FGCT,表示Full GC Time)为0.482秒;所有GC总耗时(GCT,表示GCTime)为0.587秒。