
Wenn ich top ausführe, wird CPU 0-7 angezeigt. Wenn ich das tue:
cat /proc/cpuinfo | grep "cpu cores" | uniq
Ich bekomme:
cpu cores : 4
Wenn ich „physische ID“ grepe, habe ich 1.
Ich denke, mein Befehl ist falsch und top ist richtig. Dies ist keine VM, sondern ein physischer Server, RedHat. Was mache ich falsch?
Ich bin nicht sicher, ob diese die Antwort sind:
Wie kann man die Anzahl der Kerne eines Systems unter Linux ermitteln?
Anzahl der Prozessoren in /proc/cpuinfo
Bearbeiten: Habe ich Recht, dass ich, wenn die physische ID nur 1 anzeigt, einen physischen Chip auf der Hauptplatine habe?
Bearbeiten: Es handelt sich um eine Intel(R) Xeon(R) CPU X5560 @ 2,80 GHz, aber die physische ID ist 1, und ich dachte, sie wäre 0, aber in CPUinfo gibt es keine physische ID 0.
Bearbeiten: Falls es wichtig ist, versuche ich herauszufinden, wo die Lizenzierung die Kernanzahl um das Fünffache reduziert.
Antwort1
Der X5560 ist ein einzelnerChip. Es sieht aus wie das:
grep "physical id"
teilt Ihnen mit, dass Sie EINEN physischen Prozessor installiert haben.
Wenn Sie den Wärmeverteiler von oben abnehmen, können Sie Folgendes sehen - eine einzelne physikalischesterben(mit der Vorderseite nach unten):
Wenn Sie den Würfel herausnehmen und umdrehen könnten, sähe er folgendermaßen aus:
Auf diesem einzelnen physischen Würfel befinden sich vierphysische CPU-Kerneauf dem Silizium aufgebaut:
grep "cpu cores"
sagt Ihnen, dass Ihr Prozessor über vier integrierte physische Kerne verfügt.
Jeder Kern ist ein einzelner Prozessor mit einer Gleitkommaeinheit, einer Anzahl von Ganzzahl-Ausführungseinheiten, einem Paar Registerstapel und einigen weiteren technischen Finessen, die es jedem einzelnen Kern ermöglichen, effektiv zwei unabhängige Befehlsströme (Threads) gleichzeitig auszuführen.
top
bedeutet, dass alle Prozessoren und Kerne Ihres Computers gemeinsam acht unabhängige Arbeitsabläufe gleichzeitig ausführen können. Es bedeutet, dass das Betriebssystem in der Lage ist, zu jedem beliebigen Zeitpunkt acht gleichzeitige Threads für die Ausführung einzuplanen.
Antwort2
Welche CPU verwenden Sie? Wie viele Threads sind pro physischem Kern vorhanden?
cat /proc/cpuinfo
zeigt die Anzahl der physischen Kerne an, währendtop
Gesamtzahl der vorhandenen Threads an.
Ich glaube, Ihre CPU hat 4 physische Kerne und 2 logische Kerne pro physischem Kern. Es ist alsotop
8 angezeigt.
Darüber hinaus ist der Inhalt von /proc/cpuinfo
etwas implementierungsabhängig. Wie in der gerooteten Android-Shell cpuinfo
enthält die Datei keinen Begriffcpu cores
.
cpuinfo
Jeder Thread wird jedoch wie folgt benannt processor : X
: Wo X
ist die Thread-Nr. Die letzte Thread-Nr. muss also dieselbe sein wietop/htop
der Ausgabe identisch sein.
Das Ergebnis nproc --all
muss auch im Einklang stehen mittop/htop
Antwort3
top
zeigt eine „CPU“ pro logischer CPU; auf x86 ist das das Produkt aus der Anzahl der Sockets im System, der Anzahl der physischen Kerne pro Socket und der Anzahl der Threads pro Kern.
Der cpu cores
Eintrag in /proc/cpuinfo
zeigt, ebenfalls auf x86, die Anzahl der physischen Kerne. Um die Anzahl der logischen Kerne zu finden, wie in verwendet top
, sollten Sie stattdessen den siblings
Wert betrachten:
cat /proc/cpuinfo | grep "siblings" | uniq
Eine ausführliche Beschreibung finden Sie imKernel-Dokumentation.
lscpu
Bietet leichter verständliche Informationen zu den installierten CPUs /proc/cpuinfo
(oder stellt vielmehr dieselben Informationen in einfacherer Form dar).
Antwort4
cpuinfo zeigt die tatsächlichen Kerne an, während htop/top sowohl Kerne als auch Threads als Kerne anzeigt. Aus diesem Grund haben Sie höchstwahrscheinlich 4 Kerne und 4 Threads.