Comment limiter l’utilisation du processeur d’un processus sous Linux avec cpulimit

Lorsque vous travaillez sur un système Linux, de nombreux processus s'exécutent en arrière-plan. Ces processus consomment des ressources système sous forme d'utilisation du processeur et de temps.

Alors que dans la plupart des situations, le système d'exploitation gère ces processus automatiquement, parfois un processus gourmand en ressources peut surexploiter le processeur en raison d'un traitement lourd ou d'un développement médiocre. La réponse est généralement de tuer le processus directement ou de limiter son utilisation du processeur à une certaine limite.

Heureusement, sous Linux, vous pouvez limiter l'utilisation du processeur d'un processus à l'aide d'un utilitaire de ligne de commande appelé cpulimit .

Comment identifier un processus avec une utilisation élevée du processeur

Avant de pouvoir limiter le pourcentage de ressources système qu'un processus peut utiliser, vous devez trouver l'ID de processus de ce processus particulier. Un ID de processus (ou PID) est un numéro unique que votre système utilise pour identifier un processus.

Sous Linux, il existe plusieurs façons d'obtenir des informations détaillées sur les processus. Vous pouvez utiliser la commande top pour obtenir une liste des processus en cours d'exécution sur votre système.

 top

Production:

La colonne %CPU indique le pourcentage de CPU utilisé par le processus particulier. Si votre ordinateur essaie de traiter plus de données qu'il ne le peut, un processus spécifique aura une utilisation du processeur de 100 %. Consultez le tableau pour voir s'il existe un processus avec une utilisation élevée du processeur.

Une fois que vous avez trouvé le processus avec une utilisation élevée du processeur, notez son PID. L'ID de processus est important pour limiter l'utilisation du processus.

Limiter l'utilisation du processeur avec cpulimit

Comme mentionné ci-dessus, cpulimit est un utilitaire de ligne de commande qui ajoute une limite à la quantité de ressources système utilisées par un processus spécifique sur votre ordinateur. Étant donné que la plupart des distributions Linux ne sont pas livrées avec cpulimit préinstallé, vous devrez l'installer manuellement.

Vous pouvez installer le paquet sur Ubuntu et d'autres distributions basées sur Debian comme suit :

 sudo apt install cpulimit

Sur les distributions basées sur Arch comme Manjaro Linux :

 sudo pacman -S cpulimit

Cpulimit est disponible sur le référentiel EPEL (Extra Packages for Enterprise Linux). Par conséquent, pour l'installer sur les distributions CentOS et RHEL, vous devrez d'abord activer le référentiel EPEL.

 yum install epel-release
yum install cpulimit

Syntaxe de base

Pour utiliser cpulimit, vous devrez passer l'un des trois arguments suivants avec la commande :

  1. -p ou –pid : L'ID de processus d'un processus
  2. -e ou –exe : Le nom du fichier exécutable
  3. -p ou –path : Chemin absolu du fichier exécutable

La syntaxe de base de la commande est :

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

Limiter l'utilisation du processeur d'un processus

Vous pouvez utiliser l' indicateur –limit ou -l de l'utilitaire cpulimit pour ajouter une limite aux ressources qu'un processus peut utiliser. Pour forcer un processus avec le PID 81550 à n'utiliser que 50 % du CPU :

 sudo cpulimit -p 81550 --limit 50

Ici, cpulimit limitera l'utilisation du processeur du processus tant qu'il est en cours d'exécution. Si vous arrêtez l'exécution de cpulimit, l'utilisation du processeur de ce processus spécifique redeviendra normale.

Une excellente solution pour éviter ce problème consiste à exécuter cpulimit en arrière-plan. Vous pouvez ajouter l' indicateur –background ou -b avec la commande pour envoyer la commande à l'arrière-plan .

 sudo cpulimit -p 81550 --limit 50 --background

Si l'option –background ne fonctionne pas, vous pouvez ajouter une esperluette ( & ) après la commande pour l'envoyer en arrière-plan.

 sudo cpulimit -p 81550 --limit 50 &

Utilisez la commande supérieure pour vérifier si la commande susmentionnée fonctionne.

Comme vous l'avez peut-être remarqué, l'utilisation du processeur de la commande dd est tombée à 48,8 %.

Tuer un processus à l'aide de son PID

Au lieu de limiter l'utilisation du processeur, vous pouvez arrêter complètement le processus en le tuant avec l'indicateur –kill .

 sudo cpulimit -p 81550 --limit 50 --kill

Gestion plus intelligente des processus sous Linux

Cpulimit est un excellent utilitaire si vous rencontrez souvent des processus avec une utilisation élevée du processeur. Les utilisateurs de GNOME qui ne sont pas à l'aise avec la ligne de commande peuvent également utiliser System Monitor pour gérer les processus sur leur système.

En plus d'utiliser des outils tels que cpulimit, vous pouvez également réduire la priorité sur Linux pour fournir moins de ressources à un processus spécifique. Les commandes nice et renice sont une bouée de sauvetage lorsqu'il s'agit de gérer la priorité des processus sous Linux.