Die Kernel - Dokumentation enthält eine allgemeine Berichterstattung über cgroups mit Beispielen.
Das cgroups-bin
Paket (das davon abhängt libcgroup1
), das bereits von der Distribution bereitgestellt wird, sollte in Ordnung sein.
Die Konfiguration erfolgt durch Bearbeiten der folgenden zwei Dateien:
/etc/cgconfig.conf
Wird von libcgroup verwendet, um Kontrollgruppen, ihre Parameter und Mountpunkte zu definieren.
/etc/cgrules.conf
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:
service cgconfig restart
service cgred restart
Der Workload-Manager (cgconfig) ist für die Zuweisung der Ressourcen verantwortlich.
Hinzufügen eines neuen Prozesses zum Manager:
cgexec [-g <controllers>:<path>] command [args]
Hinzufügen eines bereits laufenden Prozesses zum Manager:
cgclassify [-g <controllers>:<path>] <pidlist>
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:
group group1 {
perm {
task {
uid = alice;
gid = alice;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
group group2 {
perm {
task {
uid = bob;
gid = bob;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
mount {
cpu = /dev/cgroups/cpu;
cpuacct = /dev/cgroups/cpuacct;
}
Beispiel /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Dadurch werden die CPU-Ressourcen zwischen 50 und 50 zwischen dem Benutzer 'alice' und 'bob' aufgeteilt.