Groupes de contrôle (strong>cgroups ) vous permettent d'allouer des ressources informatiques à des processus ou des tâches spécifiques. Vous pouvez affecter un ensemble de CPU et de mémoire à un groupe spécifique de tâches ou même à un utilisateur spécifique. Le post ici détaille les étapes pour allouer une ressource mémoire définie à une utilisation spécifique. Ulimit ne pourra pas atteindre cet objectif car ulimit limite la consommation de mémoire utilisateur par processus. La meilleure option possible est d'utiliser des cgroups. Avec les cgroups, les utilisateurs peuvent être limités non seulement aux ressources mémoire, mais aussi au CPU/IO. Voyons un exemple pour limiter la mémoire utilisée par l'utilisateur "john" à 100 Mo.
Limiter la mémoire pour un utilisateur spécifique
1. Modifiez le fichier de configuration des cgroups /etc/cgconfig.conf et ajoutez les lignes ci-dessous
# vi /etc/cgconfig.conf group memlimit { memory { memory.limit_in_bytes = 104857600; #### limit memory to 100MB } }
Le morceau de code ci-dessus créera un groupe de contrôle appelé memlimit où la limite est de 100 Mo .
2. Éditez maintenant un autre fichier /etc/cgrules.conf et ajoutez la ligne ci-dessous :
# vi /etc/cgrules.conf john memory memlimit
Cela indiquera aux cgroups que l'utilisateur john sera ajouté au cgroup memlimit et ne pourra prendre que 100 Mo du système.
3. Une fois que vous avez terminé de modifier les fichiers de configuration, redémarrez les services cgred et cgconfig .
# service cgred restart # service cgconfig restartservice cgconfig (configuration du groupe de contrôle) – utilisé pour créer des groupes de contrôle et gérer des sous-systèmes
service cgred (démon du moteur de règles du groupe de contrôle) – utilisé pour déplacer les tâches dans les groupes de contrôle selon les paramètres définis dans le fichier /etc/cgrules.conf.
4. Activez les deux services pour qu'ils démarrent au démarrage du système. Avec cela, nous nous assurons que les fichiers de configuration /etc/cgconfig.conf et /etc/cgrules.conf sont lus au démarrage et que les cgroups sont créés.
# chkconfig cgred on # chkconfig cgconfig on