2.7. Einstellen von Parametern

Setzen Sie Subsystemparameter, indem Sie den cgset-Befehl von einem Benutzerkonto ausführen, das über die Berechtigungen zur Änderung der relevanten Gruppe verfügt. Falls beispielsweise /cgroup/cpuset/group1 existiert, spezifizieren Sie mit dem folgenden Befehl die CPUs, auf die diese Gruppe Zugriff hat:
cpuset]# cgset -r cpuset.cpus=0-1 group1
Die Syntax für cgset lautet: cgset -r parameter=value path_to_cgroup , wobei gilt:
  • parameter ist der zu setzende Parameter, welcher der Datei im Verzeichnis der jeweiligen Kontrollgruppe entspricht
  • value ist der Wert des Parameters
  • path_to_cgroup ist der Pfad zur Kontrollgruppe relativ zum Root der Hierarchie. Um beispielsweise den Parameter der Root-Gruppe zu setzen (falls /cgroup/cpuacct/ existiert), führen Sie Folgendes aus:
    cpuacct]# cgset -r cpuacct.usage=0 /
    Alternativ können Sie auch Folgendes ausführen, da . relativ zur Root-Gruppe ist (d.h. die Root-Gruppe selbst):
    cpuacct]# cgset -r cpuacct.usage=0 .
    Beachten Sie jedoch, dass / die bevorzugte Syntax ist.

    Anmerkung

    Nur eine kleine Anzahl von Parametern können für die Root-Gruppe gesetzt werden (wie z.B. der cpuacct.usage-Parameter, der in den obigen Beispielen gezeigt wurde). Da der Root-Gruppe sämtliche verfügbaren Ressourcen gehören, wäre es sinnlos, alle vorhandenen Prozesse zu begrenzen, indem bestimmte Parameter wie z.B. der cpuset.cpu-Parameter definiert werden.
    Um den Parameter von group1 einzustellen, die eine Untergruppe der Root-Gruppe ist, führen Sie Folgendes aus:
    cpuacct]# cgset -r cpuacct.usage=0 group1
    Der nachgestellte Schrägstrich am Ende des Gruppennamens (z.B. cpuacct.usage=0 group1/) ist optional.
Die Werte, die Sie mit cgset einstellen können, hängen ggf. von den Werten ab, die an höherer Stelle in der Hierarchie eingestellt wurden. Falls beispielsweise group1 ausschließlich CPU 0 auf einem System verwenden darf, können Sie group1/subgroup1 nicht zur Verwendung von CPUs 0 und 1 oder zur ausschließlichen Verwendung von CPU 1 einstellen.
Sie können auch cgset verwenden, um die Parameter aus einer Kontrollgruppe in eine andere, vorhandene Kontrollgruppe zu kopieren. Zum Beispiel:
~]# cgset --copy-from group1/ group2/
Die Syntax zum Kopieren von Parametern mit cgset lautet: cgset --copy-from path_to_source_cgroup path_to_target_cgroup, wobei gilt:
  • path_to_source_cgroup ist der Pfad zur Kontrollgruppe, deren Parameter kopiert werden sollen, relativ zur Root-Gruppe der Hierarchie
  • path_to_target_cgroup ist der Pfad zur Ziel-Kontrollgruppe, relativ zur Root-Gruppe der Hierarchie
Vergewissern Sie sich, dass alle obligatorischen Parameter (falls vorhanden) für die verschiedenen Subsysteme gesetzt sind, bevor Sie Parameter von einer Gruppe auf eine andere kopieren, da ansonsten der Befehl fehlschlagen wird. Weitere Informationen über obligatorische Parameter finden Sie in Wichtig — Pflichtparameter.

Alternative Methode

Um die Parameter einer Kontrollgruppe direkt einzustellen, fügen Sie Werte in die relevante Pseudodatei des Subsystems unter Verwendung des echo-Befehls ein. Der folgende Befehl fügt beispielsweise den Wert 0-1 in die Pseudodatei cpuset.cpus der Kontrollgruppe group1 ein:
~]# echo 0-1 > /cgroup/cpuset/group1/cpuset.cpus
Mit diesem Wert werden die Aufgaben in dieser Kontrollgruppe auf CPUs 0 und 1 auf dem System beschränkt.