Kapitel 2. Verwendung von Kontrollgruppen


Der einfachste Weg, mit Kontrollgruppen zu arbeiten, ist durch Installation des libcgroup-Pakets, das eine Reihe von Befehlszeilentools samt zugehöriger Handbuchseiten rund um Kontrollgruppen liefert. Es ist zwar auch möglich, Hierarchien einzuhängen und die Kontrollgruppenparameter (nicht-persistent) mithilfe der auf jedem System verfügbaren Shell-Befehle und Hilfsprogramme einzurichten. Allerdings vereinfacht der Einsatz der Hilfsprogramme des libcgroup-Pakets den Vorgang und bietet erweiterte Optionen. Aus diesem Grund konzentriert sich dieses Handbuch auf die libcgroup-Befehle. In den meisten Fällen haben wir zusätzlich die entsprechenden Shell-Befehle angegeben, um die zugrunde liegenden Mechanismen besser zu beschreiben. Wir empfehlen jedoch die Verwendung der libcgroup-Befehle, wo immer dies möglich ist.

Anmerkung

Um Kontrollgruppen einsetzen zu können, vergewissern Sie sich zunächst, dass das libcgroup-Paket auf Ihrem System installiert ist, indem Sie den folgenden Befehl als Root ausführen:
~]# yum install libcgroup
Copy to Clipboard Toggle word wrap

2.1. Der cgconfig-Dienst

Der cgconfig-Dienst, der mit dem libcgroup-Paket installiert wird, bietet einen bequemen Weg zum Einrichten von Hierarchien, zum Verknüpfen von Subsystemen mit Hierarchien, und zum Verwalten von Kontrollgruppen innerhalb dieser Hierarchien. Wir empfehlen Ihnen, zur Verwaltung von Hierarchien und Kontrollgruppen auf Ihrem System cgconfig zu verwenden.
Der cgconfig-Dienst wird auf Red Hat Enterprise Linux 6 standardmäßig nicht automatisch gestartet. Wenn Sie den Dienst mit dem chkconfig-Befehl starten, liest er die Konfigurationsdatei der Kontrollgruppe, /etc/cgconfig.conf. Kontrollgruppen werden daher von Sitzung zu Sitzung neu erstellt und sind somit persistent. Abhängig vom Inhalt der Konfigurationsdatei kann cgconfig Hierarchien erstellen, benötigte Dateisysteme einhängen, Kontrollgruppen erstellen und Subsystemparameter für jede Gruppe setzen.
Die standardmäßige cgconfig.conf-Datei, die mit dem libcgroup-Paket installiert wird, erstellt eine separate Hierarchie für jedes Subsystem, hängt diese ein, und verknüpft diese Subsysteme mit diesen Hierarchien.
Wenn Sie den cgconfig-Dienst stoppen (mit dem Befehl service cgconfig stop), hängt er sämtliche Hierarchien, die er eingehängt hatte, wieder aus.

2.1.1. Die cgconfig.conf-Datei

Die cgconfig.conf-Datei beinhaltet zwei Haupttypen von Einträgen — mount und group. Mount-Einträge erstellen Hierarchien, hängen diese als virtuelle Dateisysteme ein und fügen Subsysteme zu diesen Hierarchien hinzu. Mount-Einträge werden unter Verwendung der folgenden Syntax definiert:
mount {
    <controller> = <path>;
    …
}
Copy to Clipboard Toggle word wrap
Siehe Beispiel 2.1, »Erstellen eines Mount-Eintrags« für ein Anwendungsbeispiel.

Beispiel 2.1. Erstellen eines Mount-Eintrags

Das folgende Beispiel erstellt eine Hierarchie für das cpuset-Subsystem:
mount {
    cpuset = /cgroup/cpu;
}
Copy to Clipboard Toggle word wrap
Die entsprechenden Shell-Befehle:
~]# mkdir /cgroup/cpu
~]# mount -t cgroup -o cpu cpu /cgroup/cpu
Copy to Clipboard Toggle word wrap
Group-Einträge erstellen Kontrollgruppen und setzen Subsystemparameter. Group-Einträge werden unter Verwendung der folgenden Syntax definiert:
group <name> {
    [<permissions>]
    <controller> {
        <param name> = <param value>;
        …
    }
    …
}
Copy to Clipboard Toggle word wrap
Beachten Sie, dass der permissions-Abschnitt optional ist. Um Berechtigungen für einen Gruppeneintrag zu definieren, verwenden Sie die folgende Syntax:
perm {
    task {
        uid = <task user>;
        gid = <task group>;
    }
    admin {
       uid = <admin name>;
       gid = <admin group>;
    }
}
Copy to Clipboard Toggle word wrap
Siehe Beispiel 2.2, »Erstellen eines Gruppeneintrags« für ein Anwendungsbeispiel:

Beispiel 2.2. Erstellen eines Gruppeneintrags

Das folgende Beispiel erstellt eine Kontrollgruppe für sql-Daemons mit Berechtigungen für Benutzer in der Gruppe sqladmin zum Hinzufügen von Aufgaben zu der Kontrollgruppe, sowie den Benutzer root zum Modifizieren der Subsystemparameter.
group daemons/sql {
    perm {
        task {
            uid = root;
            gid = sqladmin;
        } admin {
            uid = root;
            gid = root;
        }
    } cpu {
        cpu.shares = 100;
    }
}
Copy to Clipboard Toggle word wrap
In Kombination mit dem Beispiel des Mount-Eintrags in Beispiel 2.1, »Erstellen eines Mount-Eintrags« lauten die entsprechenden Shell-Befehle:
~]# mkdir -p /cgroup/cpu/daemons/sql
~]# chown root:root /cgroup/cpu/daemons/sql/*
~]# chown root:sqladmin /cgroup/cpu/daemons/sql/tasks
~]# echo 100 > /cgroup/cpu/daemons/sql/cpu.shares
Copy to Clipboard Toggle word wrap

Anmerkung

Sie müssen den cgconfig-Dienst neu starten, damit die Änderungen in der /etc/cgconfig.conf-Datei wirksam werden:
~]# service cgconfig restart
Copy to Clipboard Toggle word wrap
Bei der Installation von libcgroup wird eine Beispiel-Konfigurationsdatei unter /etc/cgconfig.conf gespeichert. Das Rautenzeichen ('#') am Anfang einer Zeile kommentiert diese Zeile aus und macht sie dadurch für den cgconfig-Dienst unsichtbar.
Nach oben
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2025 Red Hat