Systemd Will Be Working To Improve Out-Of-Memory Linux Handling With Facebook OOMD
While more Linux distributions have begun packaging (and in the case of Fedora, potentially deploying by default) EarlyOOM as the out-of-memory monitoring daemon for trying to improve the Linux desktop's handling of low memory situations, systemd ultimately should be picking up its own out-of-memory daemon in the months ahead.
Going back to 2018 we first reported on Facebook developing their own out-of-memory Linux daemon. This user-space based solution was originally designed as the Facebook engineers feel the Linux kernel's OOM killer is inadequate. Facebook's OOMD as it's called should respond faster and offer better knobs for controlling its behavior. Facebook initially designed OOMD for their Linux servers but have been working on it to make it more relevant to the desktops and Linux at large.
It turns out systemd is likely to pull in Facebook OOMD in the months ahead. Lennart Poettering confirmed he/they have been working with Facebook on integrating this OOM daemon into systemd. Facebook is working first though on ensuring OOMD "just works" for all workloads without the need for manual tuning. They are also waiting on the Linux kernel's iocost code to land.
Poettering wrote yesterday, "[Facebook will] submit oomd (or simplified parts of it) to systemd, so that it's just there and works. It's their expressive intention to make this something that also works for desktop stuff and requires no further tuning. they also will do the systemd work necessary. time frame: half a year, maybe one year, but no guarantees."
Basically a "just works" version of OOMD should be integrated into systemd later this year or worst case closer to next year. But EarlyOOM at least may be satisfactory until this better solution is in place.
Those wanting to try out Facebook's OOMD today can do so via this GitHub repository. There is a Fedora COPR repository available too that offers OOMD should you not want to build it from source. Right now though it will only work optimally (especially on desktops) if tuning the configuration.