jstat
工具是JDK自带的虚拟机信息统计工具,位于JDK的bin
目录下,可以在命令行中查看当前JVM的资源指标和性能统计信息,jstat
工具的基本命令格式如下:
jstat <options> <pid>
其中<options>
的常用选项如下表格。
命令选项 | 说明 |
---|---|
class | 查看JVM总共装载的类和其空间占用等信息 |
compiler | 查看JIT编译的执行情况 |
gc | 查看JVM总的GC情况 |
gccapacity | 查看各分区大小 |
gccause | 查看最近一次GC的各项情况 |
gcnew | 查看新生代的统计信息 |
gcnewcapacity | 查看新生代空间 |
gcold | 查看老年代的统计信息 |
gcoldcapacity | 查看老年代空间 |
gcmetacapacity | 查看元数据区空间 |
具体使用时,我们执行类似jstat -gc 48460
即可,返回结果如下(这里由于我们的测试程序过于简单,因此没有什么GC信息可以显示,实际开发中不会是这样)。
这些返回信息都是缩写,其实比较抽象,我们可以这样理解。带C
结尾的是Capacity
,即容量;带U
结尾的是Used
,即已使用的空间;带T
结尾的是Time
,即消耗的时间。举例来说比如S0C
,就是新生代S0
区的容量。此外,这里的统计信息容量单位都是千字节KiB
,时间单位都是秒。记住这些就比较好理解了。
不过总的来说jstat
还是远不如JConsole
的图表和GUI界面直观,因此一般用于线上环境无法连接JConsole
的情况。