tötet Mit der jüngsten Veröffentlichung von Ubuntu 22.04 LTS wird systemd-oomd standardmäßig auf ihrem Desktop ausgeliefert, um zu versuchen, Situationen mit geringem Arbeitsspeicher/nicht genügend Arbeitsspeicher besser zu bewältigen. In der Praxis beendet systemd-oomd jedoch zu leicht User-Space-Anwendungen wie Firefox und Chrome, wenn sich der Speicherdruck nähert. Dies ist eine schlechte Ubuntu 22.04-Benutzererfahrung, aber die Entwickler haben jetzt eine Idee für ihren Ansatz, um diese Lösung anzugehen.
Systemd-oomd unter Ubuntu 22.04 LTS beendet zu leicht Benutzeranwendungen wie Webbrowser und andere speicherintensive, aber benutzerkritische Anwendungen. Dieses Beenden von Anwendungen unter Speicherdruck wird oft durchgeführt, ohne dass der Benutzer weiß, was passiert, oder ohne dass er es bemerkt.
Sie haben diskutiert, ihre systemd-oomd-Tunables zu ändern, als Möglichkeit sogar die Swap-Größe von Ubuntu standardmäßig zu ändern, und andere Änderungen. Basierend auf den neuesten Mailinglisten-Meldungen und Aktivitäten von Canonical-Ingenieuren wollen sie eine Upstream-Änderung an systemd und dann Modifikationen an wichtigen Desktop-Komponenten, damit sie richtig kommunizieren können, dass das Töten durch OOM vermieden werden sollte.
Systemd hat bereits eine”ManagedOOMPreference”-Einstellung, die Dienstdateien verwenden können, wobei einer der unterstützten Werte”avoid”ist, wenn die Out-of-Memory-Präferenz darin besteht, zu vermeiden, dass die cgroup der Einheit beendet wird, wenn systemd-oomd findet heraus, wie man den Speicherverbrauch reduzieren kann. Die vermiedenen Dienste werden nur dann getötet, wenn keine anderen brauchbaren Kandidaten zum Töten verfügbar sind (oder es gibt auch”weglassen”, wo OOMD in keinem Fall die cgroup dieser Einheit töten würde). Aber das Problem im Moment ist, dass die ManagedOOMPreference nur für Cgroups berücksichtigt wird, die Root gehören, was im Desktop-Bereich nicht der Fall ist.
Nick Rosbrook von Canonical hat eine vorläufige Pull-Anforderung an Upstream-Systemd geöffnet, die ManagedOOMPreference ermöglichen würde funktionieren für alle cgroups, nur nicht für die root-eigenen. Systemd Upstream ist nicht dagegen und es gab sogar eine ähnliche Idee letztes Jahr, die nicht zusammengeführt wurde ermöglicht dem Benutzer die Kontrolle über diese Einstellung.
Es sieht also so aus, als würde diese Änderung den Upstream vorantreiben und Ubuntu 22.04 LTS könnte die Änderung dann zurückportieren. Benutzerdienstdateien könnten dann ManagedOOMPreference je nach Wunsch auf Auslassen oder Vermeiden setzen. Dies wäre jedoch nicht gut für Anwendungen, die von der GNOME-Shell oder Snapd gestartet werden. Daher wäre weitere Arbeit erforderlich, um die Verwaltung von ManagedOOMPreference in die GNOME-Shell zu integrieren, um die Präferenz beim Start an ausgewählte Anwendungen weiterzugeben. Es ist auch wichtig herauszufinden, welche Dienste/Anwendungen für das Verhalten ManagedOOMPreference=avoid festgelegt werden sollen.
Zumindest aus dem ubuntu-devel-Thread scheint dies deren zu sein bevorzugter Pfad für die Zähmung von Ubuntus systemd-oomd, um prominente User-Space/Desktop-Anwendungen nicht zu töten. Es wird jedoch noch einige Zeit dauern, bis die Änderung hochgeladen ist und eine bessere Desktop-Integration eintritt.