Comment définir l’affinité de processus sous Linux



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.