systemd-oomd issues on desktop
Lukas Märdian
slyon at ubuntu.com
Tue Jun 14 08:53:54 UTC 2022
Am 14.06.22 um 01:22 schrieb Nick Rosbrook:
> On Mon, Jun 13, 2022 at 8:19 AM Lukas Märdian <slyon at ubuntu.com> wrote:
>> I wonder if we could use a more selective approach, though, using
>> "OOMScoreAdjust=" in the systemd.exec environment (i.e. Gnome-Shell
>> launcher in Ubuntu's context, as sd-oomd is currently only enabled on
>> Ubuntu Desktop) [2], to reduce the probability of certain "important"
>> apps being killed first, e.g. by maintaining an allow-list of such apps.
>
> IIUC, OOMScoreAdjust only influences the behavior of the kernel OOM
> killer, not systemd-oomd. In any case, I do agree that a "selective
> approach" might improve the current situation (this is what I tried to
> convey in option (2)).
Indeed. I misread the man page "This setting also applies to
systemd-oomd" => This only applies to "OOMPolicy=" and only as of v251
so it won't help us here. [1]
> The ManagedOOMPreference[1] option exists, but this property is
> ignored if the unit's cgroup is not owned by root. The rationale for
> the limitation is described in a link that Michel shared [2]. In
> short, this option is reserved for "critical services" and should be
> used sparingly. But, as Steve said earlier, it is likely that the
> browser is the most important process to many desktop users. Maybe
> this limitation on setting ManagedOOMPreference could be removed, or
> eased to at least allow setting `ManagedOOMPreference=avoid` on
> non-root owned cgroups? For this to be effective, there would need to
> be other viable kill candidates (i.e. cgroups with greater than 5%
> swap usage) when the SwapUsedLimit is met.
Yes, I feel like allowing a "ManagedOOMPreference=avoid" for critical UI
applications, would be a sensible change to make. This should allow
starting applications like this (possibly integrated with the
gnome-shell launcher for allow-listed applications):
$ systemd-run --user -p ManagedOOMPreference=avoid firefox
Should we setup a PPA to apply this modification for testing it against
the "Do not enable swap kill at all" (option 3) approach and ask the
affected users [2] to test both methods for the best outcome?
Testing option (3) should be as easy as adding a new file in /etc to
override the "ManagedOOMSwap=" setting, using the current systemd build
available in Ubuntu Jammy:
$ cat /etc/systemd/system/-.slice.d/10-oomd-root-slice-defaults.conf
[Slice]
ManagedOOMSwap=auto
-- Lukas
> Thanks,
> Nick
>
> [1] https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#ManagedOOMPreference=none%7Cavoid%7Comit
> [2] https://fedoraproject.org/wiki/Changes/EnableSystemdOomd#Can_we_exclude_certain_units_from_being_killed.3F
[1] https://github.com/systemd/systemd/pull/22629
[2] https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1972159
More information about the ubuntu-devel
mailing list