Recherche de site Web

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.

  1. 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
  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
  5. 20 outils de ligne de commande pour surveiller les performances de Linux
  6. 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.