In unserem Cluster beschränken wir unsere Prozessressourcen, z memory.limit_in_bytes
. B. Speicher ( ).
Ich denke, am Ende wird dies auch über den OOM-Killer im Linux-Kernel erledigt (sieht so aus, als würde man den Quellcode lesen ).
Gibt es eine Möglichkeit, ein Signal zu erhalten, bevor mein Prozess abgebrochen wird? (Genau wie die -notify
Option für SGEsqsub
, die gesendet wird, SIGUSR1
bevor der Prozess beendet wird.)
Ich habe /dev/mem_notify
hier darüber gelesen , aber ich habe es nicht - gibt es heutzutage noch etwas anderes? Ich habe auch gelesen , das die etwas relevant zu sein scheint.
Ich möchte in der Lage sein, zumindest einen kleinen Stack-Trace und möglicherweise einige andere nützliche Debug-Informationen zu sichern - aber vielleicht kann ich mich sogar erholen, indem ich etwas Speicher freigebe.
Eine Problemumgehung, die ich derzeit verwende, ist dieses kleine Skript, das häufig prüft, ob ich nahe (95%) am Limit bin, und in diesem Fall den Prozess a sendet SIGUSR1
. In Bash cgroup-mem-limit-watcher.py &
starte ich dieses Skript in background ( ), damit es nach anderen Prozessen in derselben cgroup sucht und automatisch beendet wird, wenn der übergeordnete Bash-Prozess stirbt.
quelle
Antworten:
Es ist möglich, sich für eine Benachrichtigung zu registrieren, wenn die Speichernutzung einer Gruppe einen Schwellenwert überschreitet. Wenn Sie den Schwellenwert an einem geeigneten Punkt unterhalb des tatsächlichen Grenzwerts einstellen, können Sie im Prinzip ein Signal senden oder andere Maßnahmen ergreifen.
Sehen:
https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
quelle
OOM Killer sendet einen SIGKILL, da es sonst kontraproduktiv wäre, dem problematischen Programm die Wahl zu lassen, fortzufahren.
Dies bedeutet, dass ein Prozess absolut nicht wissen kann, wann er von ihm getötet wird.
Das Verwalten solcher Probleme erfordert normalerweise Korrekturen an den Programmen oder deren Konfiguration. Abhängig von der Systemkonfiguration kann das Betriebssystem durch einfaches Erhöhen des Swap-Speicherplatzes manchmal mehr Flexibilität bei der Speicherverwaltung erhalten, um solch drastische Maßnahmen zu vermeiden.
quelle