Recherche de site Web

CPUTool - Limiter et contrôler l'utilisation du processeur de n'importe quel processus sous Linux


L'un des domaines critiques de la surveillance des performances Linux doit être l'utilisation du processeur et la charge du système. Il existe plusieurs outils de surveillance des performances Linux pour garder un œil sur la façon dont les choses se déroulent sur un système.

Un certain nombre de ces outils affichent simplement l'état/les statistiques du système, tandis que quelques autres vous fournissent des moyens de gérer les performances du système. Un de ces outils appelé CPUTool.

CPUTool est un outil de ligne de commande simple mais puissant permettant de limiter et de contrôler l'utilisation du processeur de tout processus à une limite donnée et permet d'interrompre l'exécution du processus si la charge du système dépasse un seuil défini.

Comment fonctionne CPUTool ?

Afin de limiter l'utilisation du processeur, cputool envoie les signaux SIGSTOP et SIGCONT aux processus et cela est déterminé par la charge du système. Il s'appuie sur le pseudo-système de fichiers /proc pour lire les PID et leurs mesures d'utilisation du processeur.

Il peut être utilisé pour limiter l'utilisation du processeur ou la charge du système influencée par un seul processus ou un groupe de processus à une limite donnée et/ou suspendre les processus si la charge du système dépasse un seuil.

Lecture suggérée : Comprendre les moyennes de charge Linux et surveiller les performances de Linux

Installez CPUTool pour limiter l'utilisation du processeur et la charge moyenne

Un CPUTool peut uniquement être installé sur Debian/Ubuntu et ses dérivés à partir des référentiels système par défaut à l'aide de l'outil de gestion de paquets.

sudo apt install cputool

Limiter l'utilisation du processeur du processus avec CUPTool

Voyons maintenant comment fonctionne réellement CPUtool. Pour démontrer tout cela, nous allons exécuter une commande dd qui devrait entraîner un pourcentage de CPU élevé, en arrière-plan et afficher son PID.

dd if=/dev/zero of=/dev/null &

Pour surveiller l'utilisation du processeur, nous pouvons utiliser les outils top ou looks qui nous permettent de visualiser un état en temps réel régulièrement mis à jour des processus du système Linux en cours d'exécution :

top

À partir du résultat ci-dessus, nous pouvons voir que la commande dd a le pourcentage de temps CPU le plus élevé 99,7 %). Nous pouvons maintenant limiter cela en utilisant cputool comme indiqué ci-dessous.

L'indicateur --cpu-limit ou -c est utilisé pour définir un pourcentage d'utilisation pour un processus ou un groupe de processus et -p pour spécifier un PID. La commande suivante limitera la commande dd (PID 8275) à 50 % d'utilisation d'un cœur de processeur :

cputool --cpu-limit 50 -p 8275 

Après avoir exécuté cputool, nous pouvons vérifier à nouveau la nouvelle utilisation du processeur pour le processus (PID 8275). Désormais, l'utilisation du processeur pour le processus dd devrait être comprise entre (49,0 % et 52,0 %).

top

Pour limiter davantage l'utilisation du processeur de dd à 20 %, nous pouvons exécuter cputool une seconde fois :

cputool --cpu-limit 20 -p 8275 

Vérifiez ensuite immédiatement à l'aide d'outils tels que top ou des regards comme celui-ci (l'utilisation du processeur pour dd devrait maintenant être comprise entre 19,0 % et 22,0 % ou légèrement au-delà) :

top

Notez que le shell n’attend aucune entrée de l’utilisateur pendant l’exécution de cputool ; devient donc insensible. Pour le tuer (cela mettra fin à l'opération de limitation de l'utilisation du processeur), appuyez sur Ctrl + C.

Il est important de spécifier un groupe de processus (un programme avec plusieurs instances en cours d'exécution, chacune avec un PID distinct), par exemple un serveur Web HTTP :

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Utilisez l'indicateur -P comme ceci :

cputool --cpu-limit 20 -P 1780

Limiter la charge du système avec CUPTool

L'option -l est utilisée pour spécifier la charge maximale que le système peut supporter pour que le processus ou le groupe de processus continue de s'exécuter. Nous pouvons utiliser une valeur fractionnaire (par exemple 2,5).

L'exemple ci-dessous signifie exécuter rsync pour une sauvegarde locale uniquement lorsque la charge du système ne dépasse pas 3,5 :

cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Pour plus d’informations et d’utilisation, consultez la page de manuel CPUTool :

man cputool

Consultez les guides utiles suivants pour trouver des informations sur le processeur et surveiller les performances du processeur :

  1. 9 commandes utiles pour obtenir des informations sur le processeur sous Linux
  2. Cpustat – Surveille l'utilisation du processeur en exécutant des processus sous Linux
  3. CoreFreq – Un puissant outil de surveillance du processeur pour les systèmes Linux
  4. Recherchez les processus les plus en cours d'exécution en fonction de l'utilisation la plus élevée de la mémoire et du processeur sous Linux

En conclusion, CPUTool s'avère vraiment utile pour la gestion des performances Linux. Partagez vos réflexions sur cet article via le formulaire de commentaires ci-dessous.