使用 jstat 命令查看内存使用,监控 Java 应用性能
在 Java 开发和调优中,了解应用程序的内存使用情况、垃圾回收频率等信息至关重要。jstat 是 JDK 中提供的一个命令行工具,用于实时监控 Java 虚拟机的各项统计信息。本文将介绍 jstat 的基本使用方法以及常用选项和输出项的含义。
jstat 命令格式
options
: 指定需要输出的格式和显示的特定统计信息。vmid
: Java 虚拟机 ID。interval
: 收集统计信息的间隔时间,单位为秒(s)。count
: 收集统计信息的次数。
你的 Java 应用应该在运行中,你可以使用 jps 命令查看运行中的 Java 进程,查看虚拟机 ID。
jstat 常用选项
jstat 的选项主要分为三类,分别用于监控内存使用、类加载和垃圾回收情况:
内存使用相关:
gc
类加载相关:
class
垃圾回收相关:
gcutil
内存使用相关的选项:-gc
该选项提供了内存使用和垃圾回收相关的信息。
示例:
![](https://static001.geekbang.org/infoq/f1/f137b0a0621a687a16b63c857c68159c.png)
输出参数说明:
S0C
: 年轻代中第一个幸存区的容量(单位 kb)。S1C
: 年轻代中第二个幸存区的容量(单位 kb)。S0U
: 年轻代中第一个幸存区目前已使用空间(单位 kb)。S1U
: 年轻代中第二个幸存区目前已使用空间(单位 kb)。EC
: 年轻代中 Eden 区的容量(单位 kb)。EU
: 年轻代中 Eden 区目前已使用空间(单位 kb)。OC
: 老年代的容量(单位 kb)。OU
: 老年代目前已使用空间(单位 kb)。MC
: 元空间的容量(单位 kb)。MU
: 元空间目前已使用空间(单位 kb)。CCSC
: 压缩类空间大小。CCSU
: 压缩类空间使用大小。YGC
: 从应用程序启动到采样时年轻代中 GC 次数。YGCT
: 从应用程序启动到采样时年轻代中 GC 所用时间(单位 s)。FGC
: 从应用程序启动到采样时老年代(full GC)GC 次数。FGCT
: 从应用程序启动到采样时老年代(full GC)GC 所用时间(单位 s)。GCT
: 从应用程序启动到采样时 GC 总用时(单位 s)。
类加载相关的选项:-class
该选项提供的有关类的装入和卸载相关的信息。
示例:
![](https://static001.geekbang.org/infoq/ba/baa03da150f4a234440600b939af803d.png)
输出参数说明:
Loaded
:已加载的类Bytes
:已加载的字节Unloaded
:已卸载的类Bytes
:在 Unloaded 后面,表示已卸载的字节
垃圾回收统计信息相关的选项:-gcutil
该选项提供有关 JVM 垃圾回收统计信息的信息。
示例:
![](https://static001.geekbang.org/infoq/57/574efe1a1bbfc8d9583078440fe1030d.png)
输出参数说明:
S0
:第一个幸存者空间利用率S1
:第二个幸存者空间利用率E
:伊甸园空间利用率O
:老年代空间利用率M
:元空间利用率CCS
:压缩空间利用率YGC
:从应用程序启动到采样时,年轻代垃圾回收次数YGCT
:从应用程序启动到采样时,年轻代垃圾回收所用时间,单位 sFGC
:从应用程序启动到采样时,Full GC 次数FGCT
:从应用程序启动到采样时,Full GC 所用时间,单位 sGC
:从应用程序启动到采样时,GC 用的总时间,单位 s
通过 jstat 命令结合这些输出项,可以实时监控 Java 应用程序的内存使用情况和垃圾回收行为,有助于及时发现和解决性能问题。
版权声明: 本文为 InfoQ 作者【小邓】的原创文章。
原文链接:【http://xie.infoq.cn/article/f68730b743687c9165f4b1fa3】。文章转载请联系作者。
评论