SYSTEMD-OOMD.SERVICE(8) systemd-oomd.service SYSTEMD-OOMD.SERVICE(8) BEZEICHNUNG systemd-oomd.service, systemd-oomd - Ein Abbruch-/Kill-Dienst bei Hauptspeicherengpassen (OOM, Out Of Memory) fur den Anwendungsraum UBERSICHT systemd-oomd.service /usr/lib/systemd/systemd-oomd BESCHREIBUNG systemd-oomd ist ein Systemdienst, der Cgroups-v2- und Speicherengpassinformationen (PSI) verwendet, um zu uberwachen und rechtzeitig Korrekturmassnahmen zu ergreifen, bevor ein OOM im Kernelraum auftritt. Sie konnen die Uberwachung von und Aktionen auf Units durch Einstellen von ManagedOOMSwap= und ManagedOOMMemoryPressure= in der Unit-Konfiguration aktivieren, siehe systemd.resource-control(5). systemd-oomd ermittelt Informationen uber solche Units von systemd(1), wenn es startet und beobachtet nachfolgende Anderungen. Cgroups von Units mit auf kill gesetztem ManagedOOMSwap= oder ManagedOOMMemoryPressure= werden uberwacht. systemd-oomd fragt regelmassig PSI-Statistiken fur das System und solche Cgroups ab, um zu entscheiden, wann Aktionen erfolgen. Falls die konfigurierten Beschrankungen uberschritten wurden, wird systemd-oomd eine Cgroup zur Beendigung auswahlen und ein SIGKILL an alle Prozesse darin senden. Beachten Sie, dass nur Nachfahren-Cgroups geeignete Kandidaten zum Toten sind; die Unit, deren Eigenschaft auf kill gesetzt ist, ist kein Kandidat (ausser einer seiner Vorfahren setzte seine Eigenschaft auf kill). Auch sind nur Blatt-Cgroups und Cgroups, deren memory.oom.group auf 1 gesetzt ist, geeignete Kandidaten; siehe OOMPolicy= in systemd.service(5). oomctl(1) kann zum Auflisten beobachteter Cgroups und Druckinformationen verwandt werden. Siehe oomd.conf(5) fur weitere Informationen uber die Konfiguration dieses Dienstes. SYSTEMANFORDERUNGEN UND KONFIGURATION Das System muss Systemd mit einer vollstandig vereinheitlichten Cgroup-Hierarchie fur die erwarteten Cgroups-v2-Funktionalitaten ausfuhren. Desweiteren muss die Speicherbuchfuhrung fur alle von systemd-oomd uberwachten Units eingeschaltet sein. Am einfachsten wird die Speicherbuchfuhrung eingeschaltet, indem in systemd-system.conf(5) der Wert DefaultMemoryAccounting= auf true gesetzt wird. Der Kernel muss mit PSI-Unterstutzung kompiliert worden sein. Diese ist in Linux 4.20 und neuer verfugbar. Es wird nachdrucklich empfohlen, im System Auslagerungsspeicher zu aktivieren, damit systemd-oomd optimal funktioniert. Mit aktiviertem Auslagerungsspeicher verbringt das System genug Zeit mit dem Auslagern von Speicherseiten, damit systemd-oomd reagieren kann. Ohne Auslagerungsspeicher tritt das System viel schneller in eine Verklemmung im aktiven Betrieb und konnte systemd-oomd daran hindern, in einer vernunftigen Zeit zu reagieren. Siehe "In Verteidigung des Auslagerungsspeichers: typische Missverstandnisse"[1] fur weitere Details zum Auslagerungsspeicher. Samtliche Auslagerungs-basierten Aktionen auf Systemen ohne Auslagerungsspeicher werden ignoriert. Wahrend systemd-oomd Speicherdruck-basierte Aktionen auf einem solchen System durchfuhren kann, wird der Speicherdruck abrupter ansteigen und konnte weitere Anpassungen erfordern, um die gewunschten Schwellwerte und das gewunschte Verhalten zu erreichen. Beachten Sie, dass es nachdrucklich empfohlen wird, dass Ihre Programme vom Systemd-Benutzerverwalter verwaltet werden, wenn Sie vorhaben, user.slice, user-$UID.slice oder ihre Nachfahren-Cgroups zu uberwachen und dort Aktionen durchzufuhren, da ansonsten zu viele Prozesse unter dem gleichen Sitzungsbereich laufen (und daher Situationen ermoglicht werden, bei denen intensive Programme systemd-oomd auslosen, so dass es alles unter der Cgroup totet). Falls Sie eine Desktop-Umgebung wie GNOME oder KDE verwenden, werden bereits viele Sitzungskomponenten mit dem Systemd-Benutzerverwalter gestartet. EINSATZEMPFEHLUNGEN ManagedOOMSwap= arbeitet mit systemweiten Auslagerungswerten, so dass es am sinnvollsten ist, diese Einstellung in der Wurzelscheibe -.slice zu setzen, womit alle Nachfahren-Cgroups geeignete Kandidaten werden. ManagedOOMMemoryPressure= arbeitet tendenziell besser bei Cgroups unterhalb der Wurzelscheibe. Fur Units, die Prozesse haben, die weniger Latenz-anfallig sind (z.B. system.slice) konnte eine hohere Begrenzung als die Vorgabe von 60 % akzeptabel sein, da solche Prozesse normalerweise Verlangsamungen aufgrund fehlenden Speichers ohne ernsthafte Konsequenzen durchhalten konnen. Etwas wie user@$UID.service konnte allerdings einen deutlich niedrigeren Wert wie 40 % bevorzugen. OPTIONEN --dry-run Einen Testlauf von systemd-oomd ausfuhren: Wenn ein Beenden ausgelost wird, erfolgt eine Ausgabe ins Protokoll, statt die Cgroup zu beenden. Hinzugefugt in Version 253. -h, --help Zeigt einen kurzen Hilfetext an und beendet das Programm. --version Zeigt eine kurze Versionszeichenkette an und beendet das Programm. SIEHE AUCH systemd(1), systemd-system.conf(5), systemd.resource-control(5), oomd.conf(5), oomctl(1) ANMERKUNGEN 1. "In Verteidigung des Auslagerungsspeichers: typische Missverstandnisse" https://chrisdown.name/2018/01/02/in-defence-of-swap.html UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 255 SYSTEMD-OOMD.SERVICE(8)