某汽车客户在 ACK 集群迁移过程中,多个 Java Pod 出现偶发 OOM,具体排查过程:
内存全景分析:Pod 内存接近 limit,诊断确认内存主要由 Java 进程占用。
Java 进程内存分析:发现进程实际占用比 JVM 监控多 570MB,全部由 JNI 内存贡献。
JNI Profiling 火焰图:显示主要内存申请来自 C2 Compiler 的 JIT 预热。
CPU 热点追踪+对比:通过常态化 CPU 热点追踪抓取内存升高时的热点,对比发现内存突增时 CPU 栈也是 C2 Compiler JIT 栈,且前面有业务流量突增和大量反射操作。
结论:C2 Compiler JIT 过程申请 JNI 内存,叠加 glibc 内存空洞导致放大和延迟释放。




