Limitierung mit cgroups

Um den reibungslosen Ablauf auf den Compute-Nodes sicher zu stellen, sollen cgroups verwendet werden. Die Nutzer sollen in Mitarbeiter & Studierende gruppiert werden, wobei jeder einzelne Nutzer eine eigene Untergruppe erhält. Der Mitarbeiter X soll also in die cgroup „staff/X„. Die einzelnen Nutzer können dann im Ressourcenverbrauch limitiert werden.

Obwohl systemd allerhand mitbringt, soll zunächst das Paket cgroups-tools zum Einsatz unter OpenSuse Leap 15 kommen:

 

Nach der Installation mit „rpm -i …“ stehen die Tools cgcreate, cgdelete etc zur Verfügung. Damit die Nutzer direkt nach dem Einloggen in die entsprechende Gruppe gepackt werden, wird pam_exec verwendet. Folgende Zeile wird in die Datei /etc/pam.d/common-session-pc hinzugefügt:

session optional pam_exec.so /PATH_TO/cgroups_pamlogin.sh

Der Pfad muss entsprechend angepasst werden. Das Skript cgroups_pamlogin.sh erzeugt nun beim Starten einer neuen Session (PAM_TYPE=open_session) die entsprechende Gruppe, wenn diese noch nicht vorhanden ist. Danach werden die entsprechenden Limits gesetzt ( 90% des Speichers und der CPU; 95% für die gesamte Gruppe). Zuletzt wird der PAM-Login-Prozess in die Gruppe verschoben, sodass alle folgenden Kind-Prozesse auch in dieser Gruppe sind:

  • echo $$ >> /sys/fs/cgroup/memory/tasks
  • echo $$ >> /sys/fs/cgroup/cpu/tasks

 

Die gesamte Konfiguration als tar.gz: pam_cgroups.tar.gz

8. November 2018 | Veröffentlicht von Robert Sombrutzki
Veröffentlicht unter Allgemein

Schreiben Sie einen Kommentar

(erforderlich)