GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So begrenzen Sie den Speicher für einen von systemd verwalteten Dienst

Die Manpage für systemd.exec hat eine Liste von LimitXXXX-Anweisungen und eine praktische Tabelle, die sie mit ulimit vergleicht Optionen, über setrlimit() Systemaufruf.

Um den gesamten Adressraum des Prozesses (ulimit -v ) verwenden Sie LimitAS= . Sonst limitiert man nur den Stack (ulimit -s ) verwenden Sie LimitSTACK= oder Datensegment (ulimit -d ) verwenden Sie LimitDATA=

Gemäß setrlimit() manpage, führen diese Beschränkungen dazu, dass die Zuweisung von zusätzlichem Speicher fehlschlägt. STACK und AS beenden das Programm mit einem sigsegv, wenn das Limit erreicht ist und der Stack wachsen muss (und das Programm hat dies nicht gehandhabt).


Systemd unterstützt die Begrenzung der Speichernutzung über die MemoryLimit-Option, wie beschrieben unter:https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

Die Art und Weise, wie das System mit der Situation umgeht, wenn der maximal zulässige Speicher (pro Dienst) erschöpft ist, hängt sowohl von der zugrunde liegenden cgroups-Implementierung als auch von der Art und Weise ab, wie systemd die Ressourcenkontrolle implementiert; Ich vermute, dass der Prozess beendet werden würde (über OOM Killer).


Für Limits analog zu ulimit:

man systemd.exec

...
LimitAS=(like ulimit -v)
...
LimitRSS=(like ulimit -m)
...

Linux
  1. Linux – Speichernutzung für einen einzelnen Linux-Prozess begrenzen?

  2. Wie schreibe ich ein Startskript für Systemd?

  3. Wie begrenzen Pipelines die Speichernutzung?

  4. Wie wirken sich ulimit-Einstellungen auf Linux aus?

  5. Wie sende ich eine E-Mail, wenn ein systemd-Dienst neu gestartet wird?

So verwenden Sie den ulimit-Linux-Befehl

So führen Sie Container als Systemd-Dienst mit Podman aus

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus

Wie stoppen Sie den systemd-Dienst

Wie kann die Speichernutzung der Anwendung begrenzt werden?

Begrenzen Sie die Speichernutzung für einen einzelnen Linux-Prozess