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

更多
你可能也喜欢
上一篇: 美团亿万级 KV 存储
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论