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. dercpuacct.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. dercpuset.cpu
-Parameter definiert werden.Um den Parameter vongroup1
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.