When the server has no free memory
The containers together can use more memory than the server has. ferryd protects itself.
The containers together use all the memory of the server.
A limit is a cap, not a reservation. This is overcommit: all the limits together can be larger than the memory of the server.
On Linux, ferryd lowers its own OOM score when it starts. The default is -500.
Set the score
Flag of ferryd | Default |
|---|---|
--oom-score-adj | -500 |
ferryd does not raise a lower value that exists, such as OOMScoreAdjust=-900 from systemd.
ferryd needs root or CAP_SYS_RESOURCE to lower the score. Without them, it writes a warning in its log.
Then set OOMScoreAdjust= in the systemd unit of ferryd. See Production setup. Add --oom-score-adj 0 to stop the warning.
ferryd starts git and the docker CLI with a score of 0. Thus the kernel can stop a git that uses too much memory. Containers do not get the score of ferryd.
On a system that is not Linux, the flag does nothing.