Limiter l’utilisation mémoire d’un processus sur Linux

Il peut arriver que l’on souhaite empêcher qu’un processus n’utilise trop de RAM. Il existe différent moyen de limiter l’utilisation de la mémoire d’un processus sous linux. Avec Systemd Sous sytemd, l’option MemoryLimit vous permet de le faire : systemd-run --scope -p MemoryLimit=5K macommande Avec Ulimit ulimit -Sv 100000 Ici nous limittons les futurs programmes […]
  • Linux

Systemd limitation mémoire d'un processus

Il peut arriver que l’on souhaite empêcher qu’un processus n’utilise trop de RAM. Il existe différent moyen de limiter l’utilisation de la mémoire d’un processus sous linux.

Avec Systemd

Sous sytemd, l’option MemoryLimit vous permet de le faire :

systemd-run --scope -p MemoryLimit=5K macommande

Avec Ulimit

ulimit -Sv 100000

Ici nous limittons les futurs programmes lancés à 100 mb d’utilisation mémoire.

Vous pouvez obtenir vôtre profil avec la commande suivante : ulimit -v

Avec les groupes de contrôle

Ici on ne limite qu’à 100 mb de RAM et 200 mb de SWAP sur les programmes qui seront ajoutés à notre groupe. A la différence des deux précédentes méthodes, nous pouvons définir une limite pour la RAM et le SWAP.

Ici nous allons créer un groupe nommé software_limitted_100MB.

cgcreate -g memory:software_limitted_500MB
echo 100M > /sys/fs/cgroup/memory/software_limitted_500MB/memory.limit_in_bytes
echo 200M > /sys/fs/cgroup/memory/software_limitted_500MB/memory.memsw.limit_in_bytes

Documentation : https://linux.die.net/man/1/cgcreate

Afin que votre système puisse prendre en charge ces paramètres vous devez modifier votre grub (/etc/default/grub) en rajoutant les options suivantes :

GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

Ensuite exécuter vos programmes depuis le groupes crée :

cgexec -g memory:software_limitted_500MB mon_programme

Si vous devez supprimer le groupe, la commande cgdelete fera le travail :

cgdelete "memory:software_limitted_500MB"

Article publié le

Dernière modification le

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.