Ressourcen-Verwaltung mit Control Groups (cgroups)
Control Group Subsystems
Ein Control Group Subsystem bietet die Funktionalität, die Eigenschaften aller Prozesse einer cgroup zu modifizieren oder zu kontrollieren. Ohne eine Möglichkeit, die Eigenschaften einzelner cgroups zu verändern, wäre die Gruppierung von Prozessen völlig unnötig, da alle Prozesse (wie im ungruppierten Zustand) dieselben Eigenschaften oder Rollen besitzen würden.
Zum Beispiel gibt es CPU- und Memory-Subsysteme, die entsprechende Ressourcen verwalten. Solche Subsysteme beeinflussen alle Prozesse innerhalb einer Gruppe. In der kompletten Hierarchie sind in allen Gruppen dieselben Subsysteme verfügbar.
Durch Vererbung können neu erstellte Gruppen die Einstellungen einzelner Subsysteme übernehmen. Die zugewiesenen Prozesse werden allerdings nicht vererbt und können auch in einer hierarchischen Gruppierung zur selben Zeit nur in einer Gruppe existieren. Der Linux-Kernel 2.6.34-rc5 stellt folgende Control Group Subsysteme zur Verfügung:
- CPU and Memory Assignment
- Namespace
- CPU Group Scheduler
- CPU Accounting Controller
- Memory Resource Controller
- Devicenode Whitelist Controller
- Process Freezer/Batch Jab Management
- Network Classifier
- Block IO Controller
Einige dieser Subsysteme werden auf den folgenden Seiten im Detail vorgestellt.