Wenn ich oben laufe, zeige ich CPU 0-7. Wenn ich es tue:
cat /proc/cpuinfo | grep "cpu cores" | uniq
Ich bekomme:
cpu cores : 4
Wenn ich "physische ID" grep, habe ich 1.
Ich denke, mein Befehl ist falsch und oben ist richtig. Dies ist keine VM und es ist ein physischer Server, RedHat. Was mache ich falsch?
Ich bin nicht sicher, ob diese darauf antworten:
Wie kann man die Anzahl der Kerne eines Systems unter Linux ermitteln?
Anzahl der Prozessoren in / proc / cpuinfo
Bearbeiten: Korrigiere ich diese physische ID, wenn nur 1 angezeigt wird, habe ich einen physischen Chip im Motherboard?
Bearbeiten: Es ist eine Intel (R) Xeon (R) CPU X5560 bei 2,80 GHz, aber die physische ID ist 1, und ich dachte, es wäre 0, aber es gibt keine physische ID 0 in cpuinfo.
Bearbeiten: Wenn es darauf ankommt, versuche ich herauszufinden, wo die Lizenzierung erfolgt .5 die Kernanzahl.
top/htop
zähltthreads
als Kerncore
,thread
undphysical cpu
Der X5560 ist ein einzelner Chip . Es sieht aus wie das:
grep "physical id"
sagt Ihnen, dass Sie EINEN physischen Prozessor installiert haben.Wenn Sie den Wärmeverteiler von der Oberseite abnehmen, können Sie dies sehen - einen einzelnen physischen Würfel (verdeckt):
Wenn Sie diesen Würfel entfernen und umdrehen könnten, würde er folgendermaßen aussehen:
Auf diesem einzelnen physischen Chip befinden sich vier physische CPU-Kerne, die auf dem Silizium aufgebaut sind:
grep "cpu cores"
sagt Ihnen, dass auf Ihrem Prozessor vier physische Kerne aufgebaut sind.Jeder Kern ist ein einzelner Prozessor mit einer Gleitkommaeinheit, einer Anzahl von ganzzahligen Ausführungseinheiten, einem Paar von Registerstapeln und einer anderen Zauberei, die es jedem einzelnen Kern ermöglicht, zwei unabhängige Befehlsströme (Threads) gleichzeitig effektiv auszuführen.
top
sagt Ihnen, dass alle Prozessoren und Kerne auf Ihrem Computer zusammen acht unabhängige Workflows gleichzeitig ausführen können - es sagt Ihnen, dass das Betriebssystem acht gleichzeitige Threads für die Ausführung zu einem bestimmten Zeitpunkt planen kann.quelle
top
zeigt eine "CPU" pro logischer CPU; Unter x86 ergibt sich 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
, ebenfalls auf x86, zeigt die Anzahl der physischen Kerne. Um die Anzahl der logischen Kerne zu ermitteln, wie sie in verwendet werdentop
, sollten Siesiblings
stattdessen den Wert betrachten:Dies wird in der Kernel-Dokumentation ausführlich beschrieben .
lscpu
Bietet Informationen zu den installierten CPUs, die leichter zu verstehen sind als/proc/cpuinfo
(oder vielmehr die gleichen Informationen auf einfachere Weise darstellen).quelle
Wahrscheinlich haben Sie eine CPU, die eine "Quad-Core" -CPU ist, und Hyperthreading aktiviert, sodass sich jeder physische Kern dem Betriebssystem (dem Kernel) als zwei logische Kerne präsentiert, denen zwei Threads demselben physischen Kern zugewiesen werden können gleichzeitig.
Die wichtigsten Begriffe, die Sie hier verstehen sollten, sind: CPU oder physischer Chip oder "Die" (bezieht sich auf "Socket"); dann physischer Kern; Stellen Sie dann sicher, dass Sie "Prozess" und "Thread" verstehen. Löschen Sie dann "Hyperthreading" und "logischer Kern".
Ich habe an einem Vortrag auf der LISA 2017 teilgenommen, bei dem alles sehr gut geklärt wurde. Die Folien aus diesem Vortrag sind online verfügbar , obwohl sie natürlich nicht so viel helfen wie der eigentliche Vortrag (da der gesprochene Teil fehlt).
quelle
cpuinfo zeigt die tatsächlichen Kerne an, während htop / top sowohl Kerne als auch Thread als Kerne anzeigt. Sie haben höchstwahrscheinlich 4 Kerne und 4 Threads, deshalb.
quelle