Java 常见 CMS GC 问题分析和解决

发布于 2023-04-14 11:56:08 字数 667 浏览 68 评论 0

  1. 分代收集器:ParNew:一款多线程的收集器,采用复制算法,主要工作在 Young 区;CMS:以获取最短回收停顿时间为目标,采用“标记 - 清除”算法
  2. 分区收集器:G1:一种服务器端的垃圾收集器,应用在多处理器和大容量内存环境中;ZGC:JDK11 中推出的一款低延迟垃圾回收器,适用于大内存低延迟服务的内存管理和回收;
  3. 读懂 GC Cause: System.gc():手动触发 GC 操作;CMS:CMS GC 在执行过程中的一些动作;Promotion Failure:Old 区没有足够的空间分配给 Young 区;Concurrent Mode Failure:CMS GC 运行期间Old 区预留的空间不足;GCLocker Initiated GC:如果线程执行在 JNI 临界区时,刚好需要进行 GC
  4. MetaSpace 区 OOM: 经常会出问题的几个点有 Orika的 classMap、JSON 的 ASMSerializer、Groovy 动态加载类
  5. 过早晋升:分配速率接近于晋升速率,对象晋升年龄较小。原因:Young/Eden 区过小,分配速率过大
  6. CMS Old GC 频繁:判 断 当前 Old 区使用率是否大于阈值,则触发 CMS GC,默认为 92%。
  7. 内存泄漏:Dump Diff 和 Leak Suspects 比较直观

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

月亮邮递员

暂无简介

文章
评论
29 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文