Maison > Article > Opération et maintenance > Comment vérifier sur quel processeur se trouve un processus sous Linux
Méthode de visualisation : 1. Utilisez la commande top, qui peut afficher sur quel processeur le processus est exécuté. La syntaxe est "top -p process number" ; 2. Utilisez la commande tâcheset, qui est utilisée pour voir sur quel processeur le processus est exécuté. ou le thread est en cours d'exécution, la syntaxe est "tasksset -p numéro de processus".
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Méthode 1 : utilisez la commande top
La commande top peut afficher sur quel processeur le processus s'exécute et peut surveiller en permanence les changements au fil du temps pour voir quel processeur le processus est en cours et des changements se produisent.
Étapes d'utilisation :
top -p [进程号],例如 top -p 3000
Appuyez sur la touche "F", utilisez les touches haut et bas pour sélectionner P = Dernier processeur utilisé, et appuyez sur la barre d'espace "*" apparaît pour indiquer la sélection, puis appuyez sur "q" pour. sortie.
Méthode 2 : utilisez la commande tâcheset
taskset peut vérifier sur quel processeur un processus (ou thread) spécifique est exécuté, ou faire exécuter un programme sur un ou plusieurs processeurs
options de paramètres de jeu de tâches :
(1 )-p, --pid : exploite le PID existant, ne démarre pas de nouvelles tâches
(2)-c, --cpu-list : spécifie une liste de numéros de processeur, pas un masque de bits. La liste peut contenir plusieurs éléments, séparés par des virgules et des plages. Par exemple, 0, 5, 7, 9 - 11.
1) Afficher le CPU sur lequel le processus est en cours d'exécution : paramètre -p
Exemple 1 :
[root@localhost ~]# taskset -p 21184
Afficher les résultats :
pid 21184’s current affinity mask: ffffff
Remarque : 21184 est le numéro du processus. Le ffffff qui affiche le résultat est en fait un masque de bits dans lequel les 24 bits de poids faible du binaire sont tous égaux à 1. Chaque 1 correspond à 1 CPU, indiquant que le processus s'exécute sur 24 CPU.
Exemple 2 :
[root@localhost ~]# taskset -p 2030
Résultat d'affichage :
pid2030’s current affinity mask: f
Remarque : Cela montre que sshd allume aléatoirement 4 processeurs.
Exemple 3 :
[root@localhost ~]# taskset -p 2726
Résultat d'affichage :
pid 2726’s current affinity mask: 3
Remarque : Le nombre décimal affiché 3 est converti en binaire et les deux plus bas sont 1. Chaque 1 correspond à un CPU, le processus s'exécute donc sur 2 CPU.
*Remarque : *L'étiquette du processeur commence à 0, donc cpu1 représente le deuxième processeur (la première étiquette du processeur est 0).
À propos de la méthode de conversion
ID CPU de 8 cœurs : 7 6 5 4 3 2 1 0
Les chiffres décimaux correspondants de 10 : 128 64 32 16 8 4 2 1
16 chiffres en hexadécimal C'est : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
correspondant à chaque chiffre binaire hexadécimal : 0=0000,1 =0001,2= 0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=1000,9=1001,A=1010,
B=1011,C=1100,D =1101,E= 1110,F=1111
Par exemple, le masque d'affinité actuel du pid 8987 apparaît : ff ff est hexadécimal, converti en binaire : 11111111, ce qui signifie que sshd est remplacé sur 8 CPU ! Donc correspondant à chaque valeur !
Par exemple, 40 en hexadécimal, puis convertir en binaire 01000000, ce qui signifie fonctionner sur le 7ème CPU
Apprentissage recommandé : Tutoriel vidéo Linux
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!