L’affinité de processus, souvent appelée « épinglage de processeur », consiste à assigner des programmes en cours d’exécution à un cœur virtuel spécifique (ou thread), plutôt que de les laisser s’exécuter sur tous les cœurs du processeur. Cette approche offre un avantage notable : elle permet aux utilisateurs de contrôler précisément la quantité de ressources système qu’un programme peut utiliser.
Dans ce tutoriel, nous allons explorer comment définir l’affinité des processus sur votre ordinateur Linux. Nous examinerons également d’autres méthodes pour limiter la consommation de ressources des programmes sur votre système d’exploitation Linux.
Obtenir les Informations sur Votre Processeur
Avant de pouvoir assigner des programmes à des cœurs spécifiques, il est essentiel de connaître le nombre de threads disponibles sur votre système Linux. Il existe différentes manières d’obtenir ces données. Nous allons nous concentrer sur deux approches.
La première méthode consiste à utiliser la commande `nproc`. Celle-ci fournit le nombre brut de processeurs que votre système Linux peut exploiter.
Pour exécuter la commande `nproc` et déterminer le nombre de threads disponibles, vous devez ouvrir une fenêtre de terminal. Pour cela, appuyez simultanément sur les touches Ctrl + Alt + T ou Ctrl + Maj + T de votre clavier.
Une fois le terminal ouvert, tapez `nproc` et validez.
nproc
Suite à l’exécution de cette commande, un nombre s’affichera. Ce nombre correspond au nombre de threads (cœurs virtuels) disponibles sur votre système Linux. Pour sauvegarder cette information, vous pouvez suivre cette procédure :
nproc >> ~/cpu-count.txt
Si la commande `nproc` ne vous donne pas assez de détails, il existe une alternative plus complète qui fournit de nombreuses informations sur les threads de votre processeur : l’outil CPU Info. Voici comment l’installer.
Assurez-vous d’avoir une fenêtre de terminal ouverte. Ensuite, entrez les commandes d’installation suivantes, en fonction de votre distribution Linux.
Ubuntu
Sur Ubuntu Linux, vous pouvez installer CPU Info en utilisant le gestionnaire de paquets Apt, via la commande suivante :
sudo apt install cpuinfo
Debian
Les utilisateurs de Debian Linux peuvent installer CPU Info à l’aide de la commande `apt-get` :
sudo apt-get install cpuinfo
Arch Linux
Sur Arch Linux, l’installation de l’outil CPU Info est simple, grâce à la commande Pacman :
sudo pacman -S python-py-cpuinfo
Fedora
Si vous utilisez Fedora Linux, vous pouvez installer CPU Info en exécutant cette commande Dnf dans le terminal :
sudo dnf install python3-cpuinfo
OpenSUSE
Pour les utilisateurs d’OpenSUSE Linux, CPU Info s’installe facilement avec la commande Zypper suivante :
sudo zypper install python3-py-cpuinfo
Une fois CPU Info installé sur votre système Linux, vous pouvez l’utiliser pour obtenir des informations précises sur votre processeur et déterminer le nombre exact de threads disponibles.
Exécutez la commande `cpu-info` pour obtenir les informations sur votre CPU.
Note : Sur Arch Linux, Fedora ou OpenSUSE, il peut être nécessaire d’utiliser `cpuinfo` à la place de `cpu-info`.
cpu-info
Après avoir exécuté cette commande, vous verrez à la fois un nombre de cœurs et un nombre logique. Le nombre logique représente le nombre de threads disponibles, c’est cette information qui nous intéresse particulièrement pour la suite de ce guide. N’hésitez pas à sauvegarder les informations du processeur dans un fichier texte, à l’aide de la commande suivante :
cpu-info >> ~/cpu-count.txt
Comment Établir l’Affinité d’un Processus Sous Linux
Pour assigner un processus à un thread spécifique sous Linux, vous utiliserez l’outil intégré `taskset`. Ouvrez un terminal en pressant Ctrl + Alt + T ou Ctrl + Maj + T. Suivez ensuite les étapes ci-dessous pour affiner un processus en cours d’exécution.
Étape 1 : Trouvez l’ID du processus du programme souhaité, à l’aide de la commande `pidof` suivie du nom de l’application. Par exemple, pour trouver l’ID de processus de Thunderbird, vous exécuterez la commande suivante :
pidof thunderbird
Étape 2 : Notez l’ID de processus de l’application. Utilisez cet ID dans la commande `taskset`, en suivant la structure ci-dessous.
Note : Vous devez remplacer `thread_number` par le numéro du thread CPU sur lequel vous voulez faire fonctionner le programme. Vous devez également remplacer `process_id` par l’ID de processus que vous avez trouvé avec `pidof`.
sudo taskset -cp thread_number process_id &
Vous voulez vérifier si votre programme est correctement assigné ? Utilisez la commande `taskset -p` suivie de l’ID du processus pour confirmer qu’il s’exécute bien sur le thread du processeur que vous avez spécifié à l’étape 2.
taskset -p process_id
Approfondir Vos Connaissances sur Taskset
Pour en savoir plus sur `taskset`, consultez son manuel. Exécutez la commande `man taskset`.
man taskset
La commande `man taskset` affichera un manuel détaillé de l’application Taskset. Prenez le temps de le lire, cela vous aidera à mieux comprendre comment cet outil fonctionne. Une fois terminé, appuyez sur la touche `q` pour quitter.