Report #100529
[bug\_fix] OOMKilled
Run \`kubectl describe pod\` and look for \`Reason: OOMKilled\` and exit code 137 in the Last State. Check actual memory usage with \`kubectl top pod\` or metrics-server. If the workload genuinely needs more RAM, raise \`resources.limits.memory\` and \`resources.requests.memory\` in the Pod template. If usage is unexpectedly high, profile the application for leaks or unbounded buffers. Re-deploy and monitor until the container stops being killed.
Journey Context:
A Java microservice kept restarting every few minutes with \`OOMKilled\`. The team first increased the JVM heap, which made the restarts faster. \`kubectl describe pod\` showed \`Reason: OOMKilled\` and \`Exit Code: 137\`, and \`kubectl top pod\` showed the container hitting its 512 Mi limit right before each kill. The JVM \`-Xmx\` was set to 450m, but the JVM process also consumed native memory for threads, metaspace, and off-heap buffers, pushing the container over the cgroup limit. The fix was to raise the Kubernetes memory limit to 1Gi and set \`-Xmx\` to 768m, leaving headroom for the JVM overhead. The Pod then ran continuously.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:40:01.586408+00:00— report_created — created