Le script timeout est un programme de surveillance de ressources utile 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’imposer des limites de temps et de mémoire, en terminant le programme en cas de violation de ces paramètres.
Aucune installation nécessaire, il suffit d’exécuter une commande avec ses arguments en utilisant le programme timeout et il surveillera la consommation de mémoire et de temps de la commande, interrompant le processus s’il dépasse les limites, et vous notifiant 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 dépôt timeout sur votre système en utilisant la commande git, puis déplacez-vous dans le dépôt local en utilisant la commande cd et invoquez-la comme une commande Linux habituelle.
$ cd ~/bin $ git clone https://github.com/pshved/timeout.git $ cd timeout
Examinons maintenant le fonctionnement du script timeout.
Limitation de la mémoire de base (100M de mémoire virtuelle) :
Ce premier exemple montre comment limiter l’utilisation de la mémoire d’un processus à 100M de mémoire virtuelle, en utilisant l’indicateur -m
. L’unité par défaut pour la mémoire est en kilooctets.
Ici, la commande stress-ng exécute 4 stresseurs de mémoire virtuelle (VMS) qui se combinent pour utiliser 40% de la mémoire disponible pendant 10 minutes. Ainsi, chaque stresseur utilise 10% de la mémoire disponible.
$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Compte tenu de la sortie de la commande timeout ci-dessus, les processus de travail stress-ng ont été arrêtés après seulement 1,16 secondes. C’est parce que la consommation de mémoire combinée des VMS (438660 kilooctets) est supérieure à l’utilisation de la mémoire virtuelle autorisée pour stress-ng et ses processus enfants.
Limitation de base du temps de processus :
Pour activer la limitation du temps de 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 stress-ng CPU+SYS le temps dépasse la valeur définie de 4, les processus de travail sont tués.
Limiter à la fois le temps et la mémoire d’un processus
Vous pouvez également limiter à la fois la mémoire et le temps 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 active la détection des interruptions de communication.
$ ./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) en utilisant l’option --memlimit-rss
ou -s
.
$ ./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
De plus, pour obtenir 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 d’exemples d’utilisation, consultez le dépôt Github de timeout: https://github.com/pshved/timeout.
Vous pourriez également trouver ces articles connexes suivants également utiles:
- Comment trouver les 15 premiers processus par utilisation de la mémoire avec ‘top’ en mode batch
- CPUTool – Limiter et contrôler l’utilisation du CPU de n’importe quel processus sous Linux
- Comment limiter l’utilisation du CPU d’un processus sous Linux avec l’outil CPULimit
Le script timeout est un programme simple de surveillance des ressources qui limite essentiellement le temps et la consommation de mémoire des processus sous Linux. Vous pouvez nous donner votre avis sur le script timeout via le formulaire de commentaire ci-dessous.
Source:
https://www.tecmint.com/limit-time-and-memory-usage-of-linux-process/