Recherche de site Web

Comment limiter l’utilisation du temps et de la mémoire des processus sous Linux


Le script timeout est un programme utile de surveillance des ressources pour limiter le temps et la consommation de mémoire des processus sous Linux. Il vous permet d’exécuter des programmes sous contrôle et d’appliquer des limites de temps et de mémoire, en mettant fin au programme en cas de violation de ces paramètres.

Aucune installation n’est nécessaire, il suffit d’exécuter une commande avec ses arguments à l’aide du programme timeout et il surveillera la mémoire et la consommation de temps de la commande, interrompant le processus si elle dépasse les limites, et vous notifiera avec le message prédéfini.

Pour exécuter ce script, vous devez avoir Perl 5 installé sur votre système Linux et le système de fichiers /proc monté.

Pour vérifier la version installée de Perl sur votre système Linux, exécutez la commande suivante.

$ perl -v

Ensuite, clonez le référentiel de délai d’expiration sur votre système à l’aide de la commande git, puis déplacez-vous dans le référentiel local à l’aide de la commande cd et appelez-le comme une commande Linux habituelle.

$ cd ~/bin
git clone https://github.com/pshved/timeout.git
cd timeout

Voyons maintenant comment fonctionne le script de délai d’expiration.

Limitation de la mémoire de base (100 Mo de mémoire virtuelle) :

Ce premier exemple montre comment limiter l’utilisation de la mémoire d’un processus à 100 Mo de mémoire virtuelle, à l’aide de l’indicateur -m. L’unité par défaut de la mémoire est en kilo-octets.

Ici, la commande stress-ng exécute 4 facteurs de stress de mémoire virtuelle (VMS) qui se combinent pour utiliser 40 % de la mémoire disponible pendant 10 minutes. Ainsi, chaque facteur de stress utilise 10 % de la mémoire disponible.

$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Si l’on considère le résultat de la commande timeout ci-dessus, les processus de travail stress-ng ont été terminés après seulement 1,16 seconde. Cela est dû au fait que la consommation de mémoire combinée du VMS (438660 kilo-octets) est supérieure à l’utilisation autorisée de la mémoire virtuelle pour stress-ng et ses processus fils.

Limitation de temps de base du processus :

Pour activer la limitation de temps du processus, utilisez l’indicateur -t comme indiqué.

$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Dans l’exemple ci-dessus, lorsque le temps stress-ng CPU+SYS dépasse la valeur définie de 4, les processus de travail sont tués.

Limitation du temps et de la mémoire du processus

Vous pouvez également limiter la mémoire et le temps à la fois comme suit.

$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Timeout prend également en charge certaines options avancées telles que --detect-hangups, qui permet la détection des raccrochages.

$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Vous pouvez surveiller la limite de mémoire RSS (resident set size) à l’aide du commutateur --memlimit-rss ou -s.

$ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

De plus, pour renvoyer le code de sortie ou le signal+128 d’un processus, utilisez l’option --confess ou -c comme indiqué.

$ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

Pour plus d’informations et un exemple d’utilisation, consultez le référentiel Github timeout : https://github.com/pshved/timeout.

Vous pourriez également trouver ces articles connexes suivants tout aussi utiles :

  1. Comment trouver les 15 meilleurs processus par utilisation de la mémoire avec « top » en mode batch
  2. CPUTool – Limitez et contrôlez l’utilisation du processeur de n’importe quel processus sous Linux
  3. Comment limiter l’utilisation du processeur d’un processus sous Linux avec l’outil CPULimit

Le script timeout est un programme simple de surveillance des ressources qui limite essentiellement la consommation de temps et de mémoire des processus sous Linux. Vous pouvez nous faire part de vos commentaires sur le script de délai d’attente via le formulaire de commentaire ci-dessous.

Articles connexes: