2.7. Définir les paramètres
Il est possible de définir les paramètres des sous-systèmes en exécutant la commande
cgset
depuis un compte utilisateur avec la permission de modifier le groupe de contrôle approprié. Par exemple, si /cgroup/cpuset/group1
existe, spécifiez les CPUs auxquels ce groupe aura accès avec la commande suivante :
cpuset]# cgset -r cpuset.cpus=0-1 group1
La syntaxe pour
cgset
est : cgset -r
parameter=value path_to_cgroup
, où :
- parameter est le paramètre à définir qui correspond au fichier dans le répertoire du groupe de contrôle donné
- value est la valeur du paramètre
- path_to_cgroup est le chemin d'accès au groupe de contrôle relatif à la racine de la hiérarchie. Par exemple, pour définir le paramètre du groupe racine (si
/cgroup/cpuacct/
existe), exécutez :cpuacct]#
cgset -r cpuacct.usage=0 /
Alternativement, comme.
est relatif au groupe racine (le groupe racine lui-même), vous pourriez aussi exécuter :cpuacct]#
cgset -r cpuacct.usage=0 .
Remarquez cependant que/
est la syntaxe préférée.Note
Seul un petit nombre de paramètres peuvent être définis pour le groupe racine (comme le paramètrecpuacct.usage
montré dans les exemples ci-dessus). Ceci est dû au fait qu'un groupe racine est propriétaire de toutes les ressources existantes. Ainsi, il ne servirait à rien de limiter tous les processus existants en définissant certains paramètres, le paramètrecpuset.cpu
par exemple.Pour définir le paramètre degroup1
, qui est un sous-groupe du groupe racine, exécutez :cpuacct]#
cgset -r cpuacct.usage=0 group1
Une barre oblique finale après le nom du groupe est optionnelle (par exemple,cpuacct.usage=0 group1/
).
Les valeurs que vous pouvez définir avec
cgset
peuvent dépendre des valeurs définies plus haut dans la hiérarchie. Par exemple, si group1
est limité à l'unique utilisation de CPU 0 sur un système, vous ne pourrez pas définir group1/subgroup1
pour qu'il utilise CPUs 0 et 1, ou pour qu'il utilise uniquement CPU 1.
Vous pouvez aussi utiliser
cgset
pour copier les paramètres d'un groupe de contrôle à un autre groupe de contrôle existant. Par exemple :
~]# cgset --copy-from group1/ group2/
La syntaxe pour copier des paramètres avec
cgset
est : cgset --copy-from
path_to_source_cgroup path_to_target_cgroup
, où :
- path_to_source_cgroup est le chemin d'accès au groupe de contrôle dont les paramètres sont à copier de manière relative au groupe racine de la hiérarchie
- path_to_target_cgroup est le chemin d'accès au groupe de contrôle destinataire relatif au groupe racine de la hiérarchie
Assurez-vous que tous les paramètres obligatoires pour les divers sous-systèmes soient bien installés avant de copier des paramètres d'un groupe à un autre, sinon la commande échouera. Pour obtenir plus d'informations sur les paramètres obligatoires, reportez-vous à Important — Paramètres obligatoires.
Méthode alternative
Pour définir des paramètres dans un groupe de contrôle, insérez les valeurs dans le pseudofichier du sous-système correspondant à l'aide de la commande
echo
. Par exemple, cette commande insère la valeur 0-1
dans le pseudofichier cpuset.cpus
du groupe de contrôle group1
:
~]# echo 0-1 > /cgroup/cpuset/group1/cpuset.cpus
Avec cette valeur en place, les tâches de ce groupe de contrôle sont restreintes aux CPUs 0 et 1 du système.