Früher gab es eine Kernel-Konfigurationsoption namens sched_user oder ähnliches unter cgroups. Dies ermöglichte (meines Wissens) allen Benutzern, Systemressourcen fair zu teilen. In 2.6.35 ist es nicht verfügbar. Gibt es eine Möglichkeit, mein System so zu konfigurieren, dass io / cpu / memory-Ressourcen automatisch für alle Benutzer (einschließlich root?) Freigegeben werden? Ich habe noch nie eine cgroup eingerichtet. Gibt es dafür ein gutes Tutorial? Vielen Dank.
linux
kernel
performance
administration
NightwishFan
quelle
quelle
Antworten:
Die Kernel - Dokumentation enthält eine allgemeine Berichterstattung über cgroups mit Beispielen.
Das
cgroups-bin
Paket (das davon abhängtlibcgroup1
), das bereits von der Distribution bereitgestellt wird, sollte in Ordnung sein.Die Konfiguration erfolgt durch Bearbeiten der folgenden zwei Dateien:
Wird von libcgroup verwendet, um Kontrollgruppen, ihre Parameter und Mountpunkte zu definieren.
Wird von libcgroup verwendet, um die Kontrollgruppen zu definieren, zu denen der Prozess gehört.
Diese Konfigurationsdateien enthalten bereits Beispiele. Passen Sie sie daher an Ihre Anforderungen an. Die Manpages decken ihre Konfiguration recht gut ab.
Starten Sie anschließend den Workload-Manager und den Regel-Daemon:
Der Workload-Manager (cgconfig) ist für die Zuweisung der Ressourcen verantwortlich.
Hinzufügen eines neuen Prozesses zum Manager:
Hinzufügen eines bereits laufenden Prozesses zum Manager:
Oder automatisch über die Datei cgrules.conf und den CGroup Rules Daemon (cgred), der jeden neu erzeugten Prozess in die angegebene Gruppe zwingt.
Beispiel /etc/cgconfig.conf:
Beispiel /etc/cgrules.conf:
Dadurch werden die CPU-Ressourcen zwischen 50 und 50 zwischen dem Benutzer 'alice' und 'bob' aufgeteilt.
quelle