jstat命令查看jvm的GC情况 (以Linux为例)

简介: jstat命令查看jvm的GC情况 (以Linux为例)

jstat命令查看jvm的GC情况



jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:

jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

注意!!!:使用的jdk版本是jdk8.


类加载统计:


6.png

  • Loaded: 加载class的数量
  • Bytes: 所占用空间大小
  • Unloaded: 未加载数量
  • Bytes: 未加载占用空间
  • Time: 时间


编译统计


7.png

  • Compiled: 编译数量。
  • Failed: 失败数量
  • Invalid: 不可用数量
  • Time: 时间
  • FailedType: 失败类型
  • FailedMethod: 失败的方法


垃圾回收统计


9.png

S0C: 第一个幸存区的大小

S1C: 第二个幸存区的大小

S0U: 第一个幸存区的使用大小

S1U: 第二个幸存区的使用大小

EC: 伊甸园区的大小

EU: 伊甸园区的使用大小

OC: 老年代大小

OU: 老年代使用大小

MC: 方法区大小

MU: 方法区使用大小

CCSC: 压缩类空间大小

CCSU: 压缩类空间使用大小

YGC: 年轻代垃圾回收次数

YGCT: 年轻代垃圾回收消耗时间

FGC: 老年代垃圾回收次数

FGCT: 老年代垃圾回收消耗时间

GCT: 垃圾回收消耗总时间


堆内存统计


10.png


NGCMN: 新生代最小容量

NGCMX: 新生代最大容量

NGC: 当前新生代容量

S0C: 第一个幸存区大小

S1C: 第二个幸存区的大小

EC: 伊甸园区的大小

OGCMN: 老年代最小容量

OGCMX: 老年代最大容量

OGC: 当前老年代大小

OC: 当前老年代大小

MCMN: 最小元数据容量

MCMX: 最大元数据容量

MC: 当前元数据空间大小

CCSMN: 最小压缩类空间大小

CCSMX: 最大压缩类空间大小

CCSC: 当前压缩类空间大小

YGC: 年轻代gc次数

FGC: 老年代GC次数


新生代垃圾回收统计


11.png

S0C: 第一个幸存区大小

S1C: 第二个幸存区的大小

S0U: 第一个幸存区的使用大小

S1U: 第二个幸存区的使用大小

TT: 对象在新生代存活的次数

MTT: 对象在新生代存活的最大次数

DSS: 期望的幸存区大小

EC: 伊甸园区的大小

EU: 伊甸园区的使用大小

YGC: 年轻代垃圾回收次数

YGCT: 年轻代垃圾回收消耗时间


新生代内存统计

21.png

NGCMN: 新生代最小容量

NGCMX: 新生代最大容量

NGC: 当前新生代容量

S0CMX: 最大幸存1区大小

S0C: 当前幸存1区大小

S1CMX: 最大幸存2区大小

S1C: 当前幸存2区大小

ECMX: 最大伊甸园区大小

EC: 当前伊甸园区大小

YGC: 年轻代垃圾回收次数

FGC: 老年代回收次数


老年代垃圾回收统计


13.png

  • MC: 方法区大小
  • MU: 方法区使用大小
  • CCSC: 压缩类空间大小
  • CCSU: 压缩类空间使用大小
  • OC: 老年代大小
  • OU: 老年代使用大小
  • YGC: 年轻代垃圾回收次数
  • FGC: 老年代垃圾回收次数
  • FGCT: 老年代垃圾回收消耗时间
  • GCT: 垃圾回收消耗总时间


老年代内存统计


12.png

  • OGCMN: 老年代最小容量
  • OGCMX: 老年代最大容量
  • OGC: 当前老年代大小
  • OC: 老年代大小
  • YGC: 年轻代垃圾回收次数
  • FGC: 老年代垃圾回收次数
  • FGCT: 老年代垃圾回收消耗时间
  • GCT: 垃圾回收消耗总时间


元数据空间统计


14.png

MCMN: 最小元数据容量

MCMX: 最大元数据容量

MC: 当前元数据空间大小

CCSMN: 最小压缩类空间大小

CCSMX: 最大压缩类空间大小

CCSC: 当前压缩类空间大小

YGC: 年轻代垃圾回收次数

FGC: 老年代垃圾回收次数

FGCT: 老年代垃圾回收消耗时间

GCT: 垃圾回收消耗总时间


总结垃圾回收统计


15.png


  • 0: 幸存1区当前使用比例
  • S1: 幸存2区当前使用比例
  • E: 伊甸园区使用比例
  • O: 老年代使用比例
  • M: 元数据区使用比例
  • CCS: 压缩使用比例
  • YGC: 年轻代垃圾回收次数
  • FGC: 老年代垃圾回收次数
  • FGCT: 老年代垃圾回收消耗时间
  • GCT: 垃圾回收消耗总时间


JVM编译方法统计


16.png


  • Compiled: 最近编译方法的数量
  • Size: 最近编译方法的字节码数量
  • Type: 最近编译方法的编译类型。
  • Method: 方法名标识。


17.jpg


18.jpg

感谢阅读,觉得不错记得点个关注~

目录
相关文章
|
Arthas 监控 Java
(十一)JVM成神路之性能调优篇:GC调优、Arthas工具详解及各场景下线上最佳配置推荐
“在当前的互联网开发模式下,系统访问量日涨、并发暴增、线上瓶颈等各种性能问题纷涌而至,性能优化成为了现时代开发过程中炙手可热的名词,无论是在开发、面试过程中,性能优化都是一个常谈常新的话题”。
1705 3
|
算法 网络协议 Java
【JVM】——GC垃圾回收机制(图解通俗易懂)
GC垃圾回收,标识出垃圾(计数机制、可达性分析)内存释放机制(标记清除、复制算法、标记整理、分代回收)
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
1021 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
算法 Java
JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?
本文详细介绍了JVM中的GC算法,包括年轻代的复制算法和老年代的标记-整理算法。复制算法适用于年轻代,因其高效且能避免内存碎片;标记-整理算法则用于老年代,虽然效率较低,但能有效解决内存碎片问题。文章还解释了这两种算法的具体过程及其优缺点,并简要提及了其他GC算法。
 JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?
|
存储 监控 Java
JVM进阶调优系列(8)如何手把手,逐行教她看懂GC日志?| IT男的专属浪漫
本文介绍了如何通过JVM参数打印GC日志,并通过示例代码展示了频繁YGC和FGC的场景。文章首先讲解了常见的GC日志参数,如`-XX:+PrintGCDetails`、`-XX:+PrintGCDateStamps`等,然后通过具体的JVM参数和代码示例,模拟了不同内存分配情况下的GC行为。最后,详细解析了GC日志的内容,帮助读者理解GC的执行过程和GC处理机制。
|
Arthas 监控 数据可视化
JVM进阶调优系列(7)JVM调优监控必备命令、工具集合|实用干货
本文介绍了JVM调优监控命令及其应用,包括JDK自带工具如jps、jinfo、jstat、jstack、jmap、jhat等,以及第三方工具如Arthas、GCeasy、MAT、GCViewer等。通过这些工具,可以有效监控和优化JVM性能,解决内存泄漏、线程死锁等问题,提高系统稳定性。文章还提供了详细的命令示例和应用场景,帮助读者更好地理解和使用这些工具。
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
1597 3
|
存储 算法 安全
(八)JVM成神路之GC分区篇:G1、ZGC、ShenandoahGC高性能收集器深入剖析
在《GC分代篇》中,我们曾对JVM中的分代GC收集器进行了全面阐述,而在本章中重点则是对JDK后续新版本中研发推出的高性能收集器进行深入剖析。
1176 12
|
运维 Java Linux
(九)JVM成神路之性能调优、GC调试、各内存区、Linux参数大全及实用小技巧
本章节主要用于补齐之前GC篇章以及JVM运行时数据区的一些JVM参数,更多的作用也可以看作是JVM的参数列表大全。对于开发者而言,能够控制JVM的部分也就只有启动参数了,同时,对于JVM的性能调优而言,JVM的参数也是基础。
381 8
|
存储 Java PHP
【JVM】垃圾回收机制(GC)之引用计数和可达性分析
【JVM】垃圾回收机制(GC)之引用计数和可达性分析
270 0