Wie lege ich ein maximales Speicherlimit für einen Jupyter Notebook-Prozess fest?
Wenn ich zu viel RAM verwende, wird der Computer blockiert und ich muss den Netzschalter drücken, um den Computer manuell neu zu starten.
Gibt es eine Möglichkeit, einen Jupyter Notebook-Prozess automatisch zu beenden, sobald ein vom Benutzer festgelegtes Speicherlimit überschritten wird, oder einen Speicherfehler zu verursachen? Vielen Dank
Unter Linux können Sie "cgroups" verwenden, um die Ressourcen für jede auf Ihrem Computer ausgeführte Software zu begrenzen.
Installiere cgroup-tools
Mit apt-get install cgroup-tools
Bearbeiten Sie die Konfiguration /etc/cgconfig.conf
, Um ein Profil für die bestimmte Art von Arbeit zu erstellen (z. B. numerische wissenschaftliche Berechnungen):
group app/numwork { memory { memory.limit_in_bytes = 500000000; } }
Wenden Sie diese Konfiguration auf die Prozessnamen an, die Sie interessieren, indem Sie sie in /etc/cgrules.conf
Auflisten (in meinem Fall sind es alle Julia
ausführbaren Dateien, die ich durch jupyter
laufe, aber Sie können sie verwenden es auch für jede andere Software):
*:Julia memory app/numwork/
Analysieren Sie abschließend die Konfiguration und legen Sie sie mit den folgenden Befehlen als die aktuell aktive Konfiguration fest:
~# cgconfigparser -l /etc/cgconfig.conf ~# cgrulesengd
Ich setze damit Grenzen für Prozesse, die auf einem Server ausgeführt werden, der von meiner gesamten Klasse von Schülern verwendet wird.
Auf dieser Seite finden Sie weitere Informationen und andere Verwendungsmöglichkeiten für cgroups
https://wiki.archlinux.org/index.php/cgroups