Wie können alle Prozesse auf jedem CPU-Kern in Ubuntu ausgeführt werden?

9

Ich arbeite am Ubuntu14.04-Server und er hat 48 CPU-Kerne. Ich sehe, dass es aufgrund von Sar-Informationen eine hohe CPU-Auslastung auf einem Kern gibt. Ich möchte also wissen, welche Prozesse auf diesem Kern ausgeführt werden. Wie soll ich alle Prozesse auf jedem CPU-Kern in Ubuntu zum Laufen bringen?

Rohanil
quelle
versuchen Sie es mit dem obersten Befehl
Mausam Sinha
topBefehl zeigt Prozesse mit allen Kernen. Wie kann ich Prozesse pro Kern erhalten? Ich habe 1nach dem topBefehl getippt und es gibt die CPU-Auslastung pro Kern, aber ich möchte Prozesse pro Kern.
Rohanil

Antworten:

12

Sie können dies mit tun ps -aeF, siehe CSpalte

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2015 ?        00:08:07 /sbin/init

Oder htopkonfigurieren Sie es mit, um die PROCESSORSpalte anzuzeigen.

Geben Sie hier die Bildbeschreibung ein

Zum Festlegen der CPU-Affinität können Sie den Task-Set- Befehl verwenden

Gänseblümchen
quelle
Sie sagten ps -aeF, aber ich musste aauf unserer F5 LTM-Shell entfernen ... ps -eFarbeitete für mich
Mike Pennington
7

Normal topkann auch die zuletzt verwendete CPU anzeigen.

Sie müssen fbeim Anzeigen des Hauptbildschirms drücken , um den Bildschirm "Feldverwaltung" aufzurufen, den Pfeil nach unten zu drücken P = Last Used CPU (SMP)und ihn mit doder Leerzeichen zu aktivieren . Drücken Sie qoder Escape, um zum Hauptbildschirm zurückzukehren.

Möglicherweise möchten Sie die P-Spalte im Feldverwaltungsbildschirm nach oben verschieben, wenn Ihnen die P-Spalte ganz rechts in der Ausgabe nicht gefällt.

Rich Alloway - RogueWave
quelle
5

Beachten Sie, dass dies veraltet ist, aber für diejenigen, die sehen möchten, welche Prozesse welchen Kern mit dem Befehl ps verwenden, ist die gewünschte Spalte psr. C ist die CPU-Auslastung.

Die Kerne sind mit 0-N nummeriert. Sie können Kerndetails sehen mit:

cat /proc/cpuinfo

Nehmen wir also an, Sie haben 4 Kerne und möchten alle Prozesse mit dem 4. Kern sehen:

CORENUM=3; ps -e -o pid,psr,cpu,cmd | grep -E  "^[[:space:]][[:digit:]]+[[:space:]]+${CORENUM}"

Brechen Sie den obigen Befehl ab.

Erstellen und setzen Sie eine Variable "CORENUM" mit dem Wert "3" (der vierte Kern). Beenden Sie die Anweisung mit einem Semikolon (Sie können hier die Eingabetaste drücken).

Führen Sie den Befehl ps aus, wobei: -e = alle Prozesse auswählen -o = Benutzerdefiniertes Format. Dies besteht aus einem oder mehreren durch Komma getrennten Formatbezeichnern. Diese finden Sie auf der Seite ps man ("man ps") im Abschnitt STANDARD FORMAT SPECIFIERS

(Verwenden Sie einen Schrägstrich, um innerhalb einer Manpage zu suchen.)

Um eine Rohliste von ihnen zu sehen, können Sie die Option "L" eingeben (ohne "-"):

ps L

Mein benutzerdefiniertes Format listet hier also die Prozess-ID auf, gefolgt vom Prozessor, der CPU-Auslastung und schließlich dem Befehl.

Dies wird dann an grep weitergeleitet, wo ich die Option -E verwendet habe, um Extended Regx zu aktivieren, um nur die Prozesse genau auszugeben, die der in der CORENUM-Variablen gespeicherten CPU-Nummer zugeordnet sind.

user3183018
quelle