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
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 /
cpuacct]# cgset -r cpuacct.usage=0 /Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alternativement, comme.est relatif au groupe racine (le groupe racine lui-même), vous pourriez aussi exécuter :cpuacct]# cgset -r cpuacct.usage=0 .
cpuacct]# cgset -r cpuacct.usage=0 .Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.usagemontré 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.cpupar 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
cpuacct]# cgset -r cpuacct.usage=0 group1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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/
~]# 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
~]# 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.