La documentation du noyau fournit une couverture générale des groupes de contrôle avec des exemples.
Le cgroups-bin
package (qui dépend de libcgroup1
) déjà fourni par la distribution devrait être correct.
La configuration se fait en modifiant les deux fichiers suivants:
/etc/cgconfig.conf
Utilisé par libcgroup pour définir les groupes de contrôle, leurs paramètres et points de montage.
/etc/cgrules.conf
Utilisé par libcgroup pour définir les groupes de contrôle auxquels appartient le processus.
Ces fichiers de configuration contiennent déjà des exemples, essayez donc de les adapter à vos besoins. Les pages de manuel couvrent assez bien leur configuration.
Ensuite, démarrez le gestionnaire de charge de travail et le démon de règles:
service cgconfig restart
service cgred restart
Le gestionnaire de charge de travail (cgconfig) est responsable de l'allocation des ressources.
Ajout d'un nouveau processus au gestionnaire:
cgexec [-g <controllers>:<path>] command [args]
Ajout d'un processus déjà en cours d'exécution au gestionnaire:
cgclassify [-g <controllers>:<path>] <pidlist>
Ou automatiquement sur le fichier cgrules.conf et le démon de règles CGroup (cgred), qui force chaque nouveau processus généré dans le groupe spécifié.
Exemple /etc/cgconfig.conf:
group group1 {
perm {
task {
uid = alice;
gid = alice;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
group group2 {
perm {
task {
uid = bob;
gid = bob;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
mount {
cpu = /dev/cgroups/cpu;
cpuacct = /dev/cgroups/cpuacct;
}
Exemple /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Cela partagera les ressources CPU environ 50-50 entre l'utilisateur 'alice' et 'bob'