ps
peut vous donner cette information si vous demandez le psr
colonne (ou utilisez la colonne -F
drapeau qui l'inclut).
Ex :
$ ps -F $$
UID PID PPID C SZ RSS PSR STIME TTY STAT TIME CMD
me 6415 6413 0 5210 2624 2 18:52 pts/0 SN 0:00 -su
Ou :
$ ps -o pid,psr,comm -p $$
PID PSR COMMAND
6415 0 bash
Mon shell fonctionnait sur le CPU 2 lorsque j'ai exécuté la première commande, sur le CPU 0 lorsque j'ai exécuté la seconde. Méfiez-vous que les processus peuvent changer les processeurs très, très rapidement, de sorte que les informations que vous voyez réellement sont, pour l'essentiel, déjà obsolètes.
Quelques informations supplémentaires dans les réponses à cette question de super utilisateur :
Linux :commande pour connaître le numéro de processeur dans lequel un processus est chargé ?
Avec le top
à partir de procps
(généralement la valeur par défaut sur les distributions Linux de nos jours), en top
, appuyez sur f , accédez à P = Last User CPU (SMP)
et appuyez sur Espace à sélectionner (vous pouvez aussi déplacer le champ par exemple avant le COMMAND
champ avec le droit touche puis déplacez-vous vers le haut et vers le bas). q pour revenir à l'écran principal (où vous verrez votre processus passer d'un processeur à l'autre à moins que vous ne l'ayez explicitement configuré pour rester avec un). Vous pouvez appuyer sur W pour l'enregistrer par défaut.
Appuyez sur ? pour obtenir de l'aide.
La commande taskset
est ce que vous cherchez :
ensemble de tâches - récupérer ou définir l'affinité CPU d'un processus
Exemple
$ taskset -p 12345
pid 12345's current affinity mask: f
Un masque de f
signifie tous les processeurs, 0x00000001
serait juste le processeur 0.
$ taskset -c -p 24389
pid 24389's current affinity list: 0-3
Affiche les processeurs sous forme de liste. J'ai 4 cœurs sur mon ordinateur portable dans cet exemple.
Voir la page de manuel a plus de détails.