Comparison
OOM killvsResource limit
OOM kill
the container has no stack trace and no error log, just a restart count going up and exit code 137.
The kernel terminating a process that exceeded its memory cgroup limit, with no chance for the application to react. It is silent from inside the container by design, which is why the symptom is a gap in the logs rather than an exception. Distinguishing an application memory leak from a limit set below the workload's genuine working set is the whole of the diagnosis, and only the trend across restarts tells you which.
Full entry →Resource limit
the container went one byte over its memory ceiling and the kernel killed it outright, mid-request.
The hard ceiling a container may consume, enforced by the kernel rather than by the scheduler. The two resources behave completely differently at the ceiling: CPU is throttled, so the workload gets slow, and memory is not compressible, so the process is killed. That asymmetry is why a CPU limit shows up as mysterious latency and a memory limit shows up as a restart loop.
Full entry →