17.8. Utilisation des fichiers unitaires de systemd pour fixer des limites aux applications
Chaque unité existante ou en cours d'exécution est supervisée par systemd
, qui crée également des groupes de contrôle pour ces unités. Les unités ont des fichiers de configuration dans le répertoire /usr/lib/systemd/system/
. Vous pouvez modifier manuellement les fichiers d'unité pour fixer des limites, établir des priorités ou contrôler l'accès aux ressources matérielles pour des groupes de processus.
Conditions préalables
-
Vous disposez des privilèges
root
.
Procédure
Modifier le fichier
/usr/lib/systemd/system/example.service
pour limiter l'utilisation de la mémoire d'un service :… [Service] MemoryMax=1500K …
La configuration ci-dessus impose une limite de mémoire maximale que les processus d'un groupe de contrôle ne peuvent pas dépasser. Le service
example.service
fait partie d'un tel groupe de contrôle auquel des limites ont été imposées. Vous pouvez utiliser les suffixes K, M, G ou T pour identifier le kilo-octet, le méga-octet, le giga-octet ou le téra-octet comme unité de mesure.Recharger tous les fichiers de configuration de l'unité :
# systemctl daemon-reload
Redémarrer le service :
# systemctl restart example.service
Vous pouvez consulter l'ensemble des options de configuration pour systemd
dans les pages suivantes du manuel :
-
systemd.resource-control(5)
-
systemd.exec(5)
Vérification
Vérifiez que les modifications ont bien été prises en compte :
# cat /sys/fs/cgroup/system.slice/example.service/memory.max 1536000
L'exemple montre que la consommation de mémoire a été limitée à environ 1 500 Ko.
Ressources supplémentaires
- Comprendre les cgroups
- Configuring basic system settings dans Red Hat Enterprise Linux
-
systemd.resource-control(5)
systemd.exec(5)
, pages de manuelcgroups(7)