2.8. Déplacer un processus sur un groupe de contrôle
Vous pouvez aussi déplacer un processus en exécutant la commande
cgclassify :
cgclassify -g cpu,memory:group1 1701
~]# cgclassify -g cpu,memory:group1 1701
La syntaxe pour
cgclassify est : cgclassify -g subsystems:path_to_cgroup pidlist, où :
- subsystems est une liste des sous-systèmes séparée par des virgules, ou
*pour lancer le processus dans les hiérarchies associées à tous les sous-systèmes disponibles. Remarquez que si des groupes de contrôle du même nom existent dans de multiples hiérarchies, l'option-gdéplace les processus dans chacun de ces groupes. Assurez-vous que le groupe de contrôle existe dans chacune des hiérarchies dont vous spécifiez les sous-systèmes ici. - path_to_cgroup est le chemin vers le groupe de contrôle dans ses hiérarchies
- pidlist est une liste d'identifiants de processus (ou PID) séparée par des espace
Vous pouvez aussi ajouter l'option
-- sticky avant le pid afin de conserver tout processus enfant dans le même groupe de contrôle. Si vous ne spécifiez pas cette option et que le démon cgred est en cours d'exécution, les processus enfants seront alloués aux groupes de contrôle selon les paramètres se trouvant dans /etc/cgrules.conf. Le processus, quant à lui, restera dans le groupe de contrôle à partir duquel vous l'avez démarré.
À l'aide de
cgclassify, vous pouvez déplacer plusieurs processus simultanément. Par exemple, cette commande déplace les processus avec les PIDs 1701 et 1138 dans le groupe de contrôle group1/ :
cgclassify -g cpu,memory:group1 1701 1138
~]# cgclassify -g cpu,memory:group1 1701 1138
Remarquez que les PIDs à déplacer sont séparés par des espaces et que les groupes spécifiés doivent être dans différentes hiérarchies.
Méthode alternative
Pour déplacer un processus vers un groupe de contrôle, écrivez son PID sur le fichier des
tâches (tasks) du groupe de contrôle. Par exemple, pour déplacer un processus avec le PID 1701 dans un groupe de contrôle sur /cgroup/lab1/group1/ :
echo 1701 > /cgroup/lab1/group1/tasks
~]# echo 1701 > /cgroup/lab1/group1/tasks
2.8.1. Le démon cgred Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Cgred est un démon qui déplace les tâches dans des groupes de contrôle en fonction des paramètres définis dans le fichier
/etc/cgrules.conf. Les entrées du fichier /etc/cgrules.conf peuvent prendre l'une des formes suivantes :
- user hierarchies control_group
- user:command hierarchies control_group
Par exemple :
maria devices /usergroup/staff
maria devices /usergroup/staff
Cette entrée spécifie que tout processus appartenant à l'utilisateur nommé
maria peuvent accéder au sous-système des périphériques selon les paramètres spécifiés dans le groupe de contrôle /usergroup/staff. Pour associer des commandes particulières à des groupes de contrôle particuliers, ajoutez le paramètre command comme suit :
maria:ftp devices /usergroup/staff/ftp
maria:ftp devices /usergroup/staff/ftp
L'entrée spécifie maintenant que lorsque l'utilisateur nommé
maria utilise la commande ftp, le processus est automatiquement déplacé sur le groupe de contrôle /usergroup/staff/ftp dans la hiérarchie qui contient le sous-système devices. Remarquez cependant que le démon déplace le processus sur le groupe de contrôle uniquement après que la condition appropriée aura été remplie. Ainsi, le processus ftp peut être exécuté pendant un court moment dans le mauvais groupe. En outre, si le processus génère des enfants alors qu'il se trouve dans le mauvais groupe, ces enfants pourraient ne pas être déplacés.
Les entrées dans le fichier
/etc/cgrules.conf peuvent inclure les notations supplémentaire suivantes :
@— lorsque préfixé à user, ceci indique un groupe au lieu d'un utilisateur unique. Par exemple,@adminssignale tous les utilisateurs faisant partie du groupeadmins.*— représente "tout". Par exemple,*dans le champsous-systèmereprésente tous les sous-systèmes.%— représente un élément qui est le même que l'élément présent dans la ligne du dessus. Par exemple :@adminstaff devices /admingroup @labstaff % %
@adminstaff devices /admingroup @labstaff % %Copy to Clipboard Copied! Toggle word wrap Toggle overflow