已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
【背景】 我做了 5 年 SRE,主责一条 Java 微服务链路(JDK 17 + Spring Boot 3,跑在 K8s 1.28,Pod limit 内存 2Gi,JVM 配了 -Xmx1400m -XX:MaxMetaspaceSize=256m)。
【现象】 近两周该 Pod 平均每天被 OOMKilled 3~4 次,事件 reason=OOMKilled、exitCode=137。诡异的是每次 kill 前抓的 heap dump(JVM 侧)堆内 used 只到 ~900m,离 1400m 的 -Xmx 还有很大余量,metaspace 也没涨,GC 日志没有 Full GC 堆积。也就是说「JVM 自认为内存很健康」,但容器层却把它杀了。
【已尝试的排查与结果】
【期望得到的答案形态】