33.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.servicepour limiter l'utilisation de la mémoire d'un service :… [Service] MemoryMax=1500K …
… [Service] MemoryMax=1500K …Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.servicefait 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
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Redémarrer le service :
systemctl restart example.service
# systemctl restart example.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
# cat /sys/fs/cgroup/system.slice/example.service/memory.max 1536000Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'exemple montre que la consommation de mémoire a été limitée à environ 1 500 Ko.