“堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践

💡 原文中文,约8400字,阅读约需20分钟。
📝

内容提要

作者王江波提出了内存占用高触发报警的问题,并提出了解锁实验参数、禁用显示调用Full gc、gc日志指标、最大线程数、内存分析等优化策略,以及jstack等工具的使用,以及使用jstat、jmap-histo、jmqp-heap、jmqp-dump等工具,分析gc日志,调整参数,增大元空间,使用CMS & PNEW等方案,以及临时方案以观后效,以解决内存占用高问题。

🎯

关键要点

  • 内存占用高触发报警的问题背景
  • 堆内存使用情况描述,young gc频繁且效果不佳
  • 容器配置的关键信息,包括操作系统、JRE版本、JVM启动参数等
  • young gc的触发时机及原因分析
  • full gc的触发时机及原因分析
  • 不同类型的垃圾回收器及其特点
  • 优化策略包括增加gc日志、调整gc参数、内存分析工具的使用
  • 使用jstack、jstat、jmap等工具进行内存分析
  • 临时方案以观后效,降低对象大小
  • 增大元空间及使用CMS与PNEW的组合方案
➡️

继续阅读