2.2. Erstellen einer Hierarchie und Verknüpfen von Subsystemen

Warnung

Die folgende Anleitung zum Erstellen einer neuen Hierarchie und dem Verknüpften von Subsystemen geht davon aus, dass noch keine Kontrollgruppen auf Ihrem System konfiguriert sind. In diesem Fall werden diese Anleitungen keine Auswirkungen auf den Betrieb des Systems haben. Wenn Sie dagegen anpassbare Parameter in einer Kontrollgruppe mit Aufgaben ändern, kann sich dies sofort auf diese Aufgaben auswirken. Dieses Handbuch macht Sie darauf aufmerksam, wenn zum ersten Mal die Änderung eines anpassbaren Kontrollgruppenparameters dargestellt wird, der sich auf eine oder mehrere Aufgaben auswirken kann.
Auf einem System, auf dem bereits Kontrollgruppen konfiguriert sind (entweder manuell oder mittels cgconfig-Dienst), werden diese Befehle fehlschlagen, wenn Sie nicht zunächst vorhandene Hierarchien aushängen - was sich jedoch auf den Betrieb des Systems auswirkt. Experimentieren Sie mit diesen Anweisungen nicht auf Produktionssystemen.
Um eine Hierarchie zu erstellen und Subsysteme damit zu verknüpfen, bearbeiten Sie den mount-Abschnitt der /etc/cgconfig.conf-Datei als Root. Einträge im mount-Abschnitt haben das folgende Format:
subsystem = /cgroup/hierarchy;
Beim nächsten Start von cgconfig wird es die Hierarchie erstellen und die Subsysteme damit verknüpfen.
Das folgende Beispiel erstellt eine Hierarchie namens cpu_and_mem und verknüpft die cpu, cpuset, cpuacct und memory Subsysteme damit.
mount {
    cpuset  = /cgroup/cpu_and_mem;
    cpu     = /cgroup/cpu_and_mem;
    cpuacct = /cgroup/cpu_and_mem;
    memory  = /cgroup/cpu_and_mem;
}

Alternative Methode

Sie können auch Shell-Befehle und Hilfsprogramme nutzen, um die Hierarchien zu erstellen und Subsysteme damit zu verknüpfen.
Erstellen Sie als Root einen Einhängepunkt für die Hierarchie. Der Name des Einhängepunkts sollte den Namen der Kontrollgruppe enthalten:
~]# mkdir /cgroup/name
Zum Beispiel:
~]# mkdir /cgroup/cpu_and_mem
Verwenden Sie als Nächstes den mount-Befehl, um die Hierarchie einzuhängen und gleichzeitig ein oder mehrere Subsysteme einzuhängen. Zum Beispiel:
~]# mount -t cgroup -o subsystems name /cgroup/name
Wobei subsystems eine kommagetrennte Liste mit Subsystemen und name der Name der Hierarchie ist. Eine kurze Beschreibung aller verfügbaren Subsysteme finden Sie in Verfügbare Subsysteme in Red Hat Enterprise Linux, und Kapitel 3, Subsysteme und anpassbare Parameter liefert detaillierte Erläuterungen.

Beispiel 2.3. Verwendung des mount-Befehls zum Verknüpfen mit Subsystemen

In diesem Beispiel existiert bereits ein Verzeichnis namens /cgroup/cpu_and_mem, das als Einhängepunkt für die Hierarchie dienen wird, die wir erstellen. Wir werden die Subsysteme cpu, cpuset und memory mit einer Hierarchie verknüpfen, die wir cpu_and_mem nennen, und mit dem mount-Befehl die cpu_and_mem-Hierarchie unter /cgroup/cpu_and_mem einhängen:
~]# mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
Sie können alle verfügbaren Subsysteme zusammen mit ihren derzeitigen Einhängepunkten (d.h. der Einhängepunkt der Hierarchie, mit der sie verknüpft sind) mithilfe des lssubsys-Befehls [3] einsehen :
~]# lssubsys -am
cpu,cpuset,memory /cgroup/cpu_and_mem
net_cls
ns
cpuacct
devices
freezer
blkio
Aus dieser Ausgabe lässt sich Folgendes ablesen:
  • Die cpu, cpuset und memory Subsysteme sind mit einer Hierarchie verknüpft, die unter /cgroup/cpu_and_mem eingehängt ist
  • Die net_cls, ns, cpuacct, devices, freezer und blkio Subsysteme sind bislang mit keiner Hierarchie verknüpft, wie das Fehlen eines Einhängepunktes zeigt.


[3] Der lssubsys-Befehl ist Teil der Hilfsprogramme, die vom libcgroup-Paket bereitgestellt werden. Sie müssen libcgroup installieren, um ihn verwenden zu können: Siehe Kapitel 2, Verwendung von Kontrollgruppen, falls Sie lssubsys nicht ausführen können.