Heim > Artikel > Betrieb und Instandhaltung > So überprüfen Sie unter Linux, auf welcher CPU sich ein Prozess befindet
Anzeigemethode: 1. Verwenden Sie den Befehl top, der anzeigen kann, auf welcher CPU der Prozess ausgeführt wird. Die Syntax lautet „top -p Prozessnummer“. 2. Verwenden Sie den Befehl „taskset“, mit dem angezeigt werden kann, auf welcher CPU der Prozess ausgeführt wird oder der Thread läuft weiter, die Syntax lautet „tasksset -p Prozessnummer“.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Methode 1: Verwenden Sie den Befehl „top“
Der Befehl „top“ kann anzeigen, auf welcher CPU der Prozess ausgeführt wird, und kann Änderungen im Laufe der Zeit kontinuierlich überwachen, um zu sehen, welche CPU Der Prozess läuft weiter.
Nutzungsschritte:
top -p [进程号],例如 top -p 3000
Drücken Sie die Taste „F“, wählen Sie mit den Auf- und Ab-Tasten „P = Zuletzt verwendete CPU“ aus, drücken Sie die Leertaste, um die Auswahl anzuzeigen, und drücken Sie dann „q“. Ausfahrt.
Methode 2: Verwenden Sie den Befehl „taskset“
taskset kann überprüfen, auf welcher CPU ein bestimmter Prozess (oder Thread) ausgeführt wird, oder ein Programm auf einer oder mehreren bestimmten CPUs ausführen lassen
taskset-Parameteroptionen:
(1 )-p, --pid: Vorhandene PID betreiben, keine neuen Aufgaben starten
(2)-c, --cpu-list: Geben Sie eine Liste von Prozessornummern an, keine Bitmaske. Die Liste kann mehrere Elemente enthalten, getrennt durch Kommas und Bereiche. Zum Beispiel 0, 5, 7, 9 – 11.
1) Zeigt die CPU an, auf der der Prozess läuft: -p-Parameter
Beispiel 1:
[root@localhost ~]# taskset -p 21184
Ergebnisse anzeigen:
pid 21184’s current affinity mask: ffffff
Hinweis: 21184 ist die Prozessnummer. Das ffffff, das das Ergebnis anzeigt, ist eigentlich eine Bitmaske, in der die 24 niederwertigen Bits der Binärdatei alle 1 sind. Jede 1 entspricht 1 CPU, was anzeigt, dass der Prozess auf 24 CPUs ausgeführt wird.
Beispiel 2:
[root@localhost ~]# taskset -p 2030
Anzeigeergebnis:
pid2030’s current affinity mask: f
Hinweis: Es zeigt, dass sshd zufällig 4 CPUs einschaltet.
Beispiel 3:
[root@localhost ~]# taskset -p 2726
Anzeigeergebnis:
pid 2726’s current affinity mask: 3
Hinweis: Die angezeigte Dezimalzahl 3 wird in Binärzahl umgewandelt und die niedrigsten beiden sind 1. Jede 1 entspricht einer CPU, sodass der Prozess auf 2 CPUs läuft.
*Hinweis: *Die CPU-Beschriftung beginnt bei 0, sodass cpu1 die zweite CPU darstellt (die erste CPU-Beschriftung ist 0).
Über die Konvertierungsmethode
CPU-ID von 8 Kernen: 7 6 5 4 3 2 1 0
Die entsprechenden Dezimalstellen von 10: 128 64 32 16 8 4 2 1
16 Stellen im Hexadezimalformat Es ist: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
entsprechend jeder hexadezimalen Binärziffer: 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
Zum Beispiel erscheint die aktuelle Affinitätsmaske von pid 8987: ff ff ist hexadezimal, in Binär umgewandelt: 11111111, was bedeutet, dass sshd auf 8 CPUs ersetzt wird! Entspricht also jedem Wert!
Zum Beispiel 40 in Hexadezimalzahl, dann in Binärzahl 01000000 umwandeln, was bedeutet, dass auf der 7. CPU gearbeitet wird
Empfohlenes Lernen: Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo überprüfen Sie unter Linux, auf welcher CPU sich ein Prozess befindet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!