如何通过jstat -gccause命令实时查看触发垃圾回收的具体原因?

2026-04-30 17:000阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计959个文字,预计阅读时间需要4分钟。

如何通过jstat -gccause命令实时查看触发垃圾回收的具体原因?

由于使用 `jstat -gc` 只会告诉你 发生了GC,而 `jstat -gccause` 会明确告诉你 为什么现在发生了GC。例如,看到 `Metadata GC Threshold`,你就知道是 Metaspace 快满了,而不是代码写错、内存泄漏,或者是类加载太多或未及时卸载。这个区别直接决定了你是否需要调整参数、检查类加载器,甚至可能需要升级 Spring Boot 的 auto-configuration。

jstat -gccause 的输出列怎么看

它和 jstat -gc 输出结构一致,但多出两列:LGCC(Last GC Cause)和 CGCC(Current GC Cause)。注意:这两列是字符串,不是数字。

  • LGCC:上一次 GC 是被什么触发的,例如 Allocation Failure(Eden 满)、Metadata GC Threshold(Metaspace 达限)、System.gc()(有人手动调了)
  • CGCC:当前采样时刻,**正在发生的 GC 是由什么触发的**。
阅读全文
标签:JS

本文共计959个文字,预计阅读时间需要4分钟。

如何通过jstat -gccause命令实时查看触发垃圾回收的具体原因?

由于使用 `jstat -gc` 只会告诉你 发生了GC,而 `jstat -gccause` 会明确告诉你 为什么现在发生了GC。例如,看到 `Metadata GC Threshold`,你就知道是 Metaspace 快满了,而不是代码写错、内存泄漏,或者是类加载太多或未及时卸载。这个区别直接决定了你是否需要调整参数、检查类加载器,甚至可能需要升级 Spring Boot 的 auto-configuration。

jstat -gccause 的输出列怎么看

它和 jstat -gc 输出结构一致,但多出两列:LGCC(Last GC Cause)和 CGCC(Current GC Cause)。注意:这两列是字符串,不是数字。

  • LGCC:上一次 GC 是被什么触发的,例如 Allocation Failure(Eden 满)、Metadata GC Threshold(Metaspace 达限)、System.gc()(有人手动调了)
  • CGCC:当前采样时刻,**正在发生的 GC 是由什么触发的**。
阅读全文
标签:JS