本文目录#
为什么要针对 G1 设计专属流程#
G1 堆结构复杂,需要结合 Region 分布、Humongous 对象、Remembered Set 才能找到问题根源。标准化堆 dump 工作流有助于快速定位内存泄漏与异常占用。
工作流#
- 触发 dump:
jmap -dump:live,format=b,file=heap.hprof <pid>
; - 使用 MAT
Dominator Tree
、Top Consumers
分析; - 结合 GC 日志与 JFR 评估晋升失败、HRegion 占用;
- 对比多次 dump 找出增量对象。
自检清单#
- 是否在 dump 前收集 GC 日志、JFR、线程 dump?
- 是否将分析结果记录在知识库?
- 是否为常见泄漏模式(ThreadLocal、缓存)建立检测脚本?
参考资料#
- Eclipse MAT:https://www.eclipse.org/mat/
- G1 GC 调优指南:https://docs.oracle.com/en/java/javase/17/gctuning/
- Netflix Heap dump 分析经验
本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。