G1 GC 并发标记的 SATB 队列:快照一致性与漏标问题的工程解法
本文聚焦 G1 GC 并发标记阶段的 SATB 队列机制,解释其如何通过写前屏障记录旧引用,保证快照一致性,避免漏标。结合高并发订单服务场景,分析 SATB 与增量更新的区别、浮动垃圾的产生,以及如何通过日志和 JFR 观察标记进度。
共 4 篇文章
本文聚焦 G1 GC 并发标记阶段的 SATB 队列机制,解释其如何通过写前屏障记录旧引用,保证快照一致性,避免漏标。结合高并发订单服务场景,分析 SATB 与增量更新的区别、浮动垃圾的产生,以及如何通过日志和 JFR 观察标记进度。
容器化微服务偶发长停顿的根因往往指向 JVM 安全点机制。本文以一次典型 GC 停顿超时排查为线索,深入安全点的线程协作模型、VM 操作类型、日志与 JFR 诊断方法,并给出常见阻塞原因与优化策略,帮助读者系统掌握安全点停顿的分析与解决。
本文分析偏向锁在 Java 15 中被默认禁用并最终移除的工程原因,聚焦高并发下撤销开销如何抵消收益。以线程池频繁争用的同步块性能诊断为贯穿场景,解释偏向锁的获取、撤销、批量重偏向与批量撤销流程,并结合 JEP 374 的决策依据,说明现代应用为何应避免依赖偏向锁,以及如何通过 JFR 和锁分析工具诊断同步性能。
本文深入解析 JDK Flight Recorder 的事件流 API 如何实现生产环境下的低开销实时监控。通过一个高并发交易服务的贯穿场景,阐述事件流的内部架构、关键事件类型、与 Prometheus 等外部系统的集成方式,以及锁竞争、内存分配等细节的采集原理。文章还对比了传统 JMX 监控的局限,并讨论虚拟线程下的 pinning 检测、背压控制等常见失败模式,为构建自定义预警提供工程指导。