In the latest version of the proc filesystem the OOMKiller has had some adjustments. The valid range is now -1000 to +1000; previously it was -16 to +15 with a special score of -17 to outright disable it. It also now uses /proc/<pid>/oom_score_adj
instead of /proc/<pid>/oom_adj
. You can read the finer details here.
Given that, systemd now includes OOMScoreAdjust
specifically for altering this. To fully disable OOMKiller on a service simply add OOMScoreAdjust=-1000
directly underneath a [Service]
definition, as follows.
... [Service] OOMScoreAdjust=-1000 ...
This score can be adjusted if you want to ensure the parent PID lives, but children processes can be safely reaped by setting it to something like -999, then if “/bin/parent”, has “/bin/parent –memory-hungry-child,” it will be killed first.
If you have a third-party daemon (like Datadog, used in this example below) which manages itself and uses a sysvinit script you can still calm…
View original post 173 more words