Limiter l'utilisation du processeur d'un processus sous Linux avec l'outil CPULimit
Dans un article précédent, nous avons expliqué CPUTool pour limiter et contrôler l'utilisation du processeur de tout processus sous Linux. Il permet à un administrateur système d'interrompre l'exécution d'un processus (ou d'un groupe de processus) si la charge CPU/système dépasse un seuil défini. Ici, nous allons apprendre à utiliser un outil similaire appelé cpulimit.
Cpulimit est utilisé pour restreindre l'utilisation du processeur d'un processus de la même manière que CPUTool, cependant, il offre plus d'options d'utilisation par rapport à son homologue. Une différence importante est que cpulimit ne gère pas la charge du système contrairement à cputool.
Lecture suggérée : 9 commandes utiles pour obtenir des informations sur le processeur sous Linux
Installez CPULimit pour limiter l'utilisation du processeur d'un processus sous Linux
CPULimit peut être installé à partir des référentiels de logiciels par défaut de Debian/Ubuntu et de ses dérivés à l'aide d'un outil de gestion de paquets.
sudo apt install cpulimit
Dans RHEL/CentOS et Fedora, vous devez d'abord activer le référentiel EPEL, puis installer cpulimit comme indiqué.
# miam, installez epel-release
# miam, installez cpulimit
Limiter l'utilisation du processeur du processus avec CUPLimit
Dans cette sous-section, nous expliquerons comment fonctionne cpulimit. Tout d'abord, exécutons une commande (la même commande dd que nous avons examinée en couvrant cputool) qui devrait entraîner un pourcentage de CPU élevé, en arrière-plan (notez que le PID du processus est imprimé après l'exécution de la commande) .
dd if=/dev/zero of=/dev/null &
[1] 17918
Ensuite, nous pouvons utiliser les outils top ou looks qui génèrent l'état réel fréquemment mis à jour d'un système Linux en cours d'exécution, pour surveiller l'utilisation du processeur de la commande ci-dessus.
top
En regardant le résultat ci-dessus, nous pouvons voir que le processus dd utilise le pourcentage le plus élevé de temps CPU 100,0 %.
Mais nous pouvons limiter cela en utilisant cputlimit comme suit. L'option --pid
ou -p
est utilisée pour spécifier le PID et --limit
ou -l
est utilisé pour définir un pourcentage d’utilisation pour un processus.
La commande ci-dessous limitera la commande dd (PID 17918) à 50 % d'utilisation d'un cœur de processeur.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
Une fois que nous avons exécuté cpulimit, nous pouvons afficher l'utilisation actuelle du processeur pour la commande dd avec un aperçu ou un aperçu. D'après le résultat, la valeur varie de (51,5 % à 55,0 % ou légèrement au-delà).
Nous pouvons limiter son utilisation du processeur une deuxième fois comme suit, cette fois en réduisant encore le pourcentage comme suit :
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Comme nous l'avons fait auparavant, nous pouvons exécuter des vues d'ensemble ou des aperçus pour afficher la nouvelle utilisation du processeur pour le processus, qui s'étendra de 20 % à 25,0 % ou légèrement au-delà.
top
Remarque : Le shell devient non interactif – n'attend aucune entrée de l'utilisateur lorsque cpulimit est en cours d'exécution. Pour le tuer (ce qui devrait arrêter l'opération de limitation de l'utilisation du processeur), appuyez sur [Ctrl + C]
.
Pour exécuter cpulimit en tant que processus en arrière-plan, utilisez le commutateur --background
ou -b
, libérant ainsi le terminal.
sudo cpulimit --pid 17918 --limit 20 --background
Pour spécifier le nombre de cœurs de processeur présents sur le système, utilisez l'indicateur --cpu
ou -c
(ceci est normalement détecté automatiquement).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
Plutôt que de limiter l'utilisation du processeur d'un processus, nous pouvons le tuer avec l'option --kill
ou -k
. Le signal par défaut envoyé au processus est SIGCONT, mais pour envoyer un signal différent, utilisez l'indicateur --signal
ou -s
.
sudo cpulimit --pid 17918 --limit 20 --kill
Pour quitter s'il n'y a pas de processus cible approprié, ou s'il meurt, incluez -z
ou --lazy
comme ceci.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
Pour plus d’informations et d’options d’utilisation, consultez la page de manuel cpulimit.
man cpulimit
Consultez les guides utiles suivants pour trouver des informations sur le processeur et surveiller les performances du processeur/système.
- 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
- Cpustat – Surveille l'utilisation du processeur en exécutant des processus sous Linux
- CoreFreq – Un puissant outil de surveillance du processeur pour les systèmes Linux
- 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
- 20 outils de ligne de commande pour surveiller les performances de Linux
- 13 Outils de surveillance des performances Linux – Partie 2
En comparaison, après avoir testé CPUTool et CPULimit, nous avons remarqué que le premier offre une fonctionnalité de « limitation de l'utilisation du processeur de processus » plus efficace et plus fiable.
Cela dépend de la plage de pourcentage d'utilisation du processeur observée après l'exécution des deux outils sur un processus donné. Essayez les deux outils et ajoutez vos réflexions à cet article en utilisant le formulaire de commentaires ci-dessous.