Die CPU-Nummer unterscheidet sich in „Über diesen Computer“ und /cpu/cpuinfo

Die CPU-Nummer unterscheidet sich in „Über diesen Computer“ und /cpu/cpuinfo

Frage:

Ich möchte fragen, was die Ursache dafür sein kann, dass es zwei unterschiedliche Angaben zur Anzahl der Prozessoren gibt. Siehe die Berichte weiter unten.

Systemdialog:

Wenn ich die Registerkarte „Systemeinstellungen/Details“ öffne (dasselbe wie das Abmelderad und „Über diesen Computer“), wird mir Folgendes gemeldet:

Prozessor: Intel® Xeon(R) CPU E5-2680 v3 @ 2,50 GHz × 16


Befehlszeilenschnittstelle: cpuinfo (1)

Wenn ich jedoch einen Kommandozeilenbefehl verwende, erhalte ich Folgendes:

$ cat /proc/cpuinfo | grep processor | wc -l
24

Ich neige dazu, dem Befehlszeilenbericht zu glauben – aber was kann die Ursache für die Unterschiede sein?

Zur Info: Der Systemmonitor zeigt auch Statistiken für 24 Kerne an


Befehlszeilenschnittstelle: cpuinfo (2)

Wie in den Kommentaren vorgeschlagen, habe ich auch die folgende Befehlszeile ausgeführt

$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12

So, jetzt habe ich sogar noch ein drittes Ergebnis! Das macht Sinn, denn es könnte sein, dass 12 Kerne mit 2 Prozessoren in der Maschine stecken - aber wie ist es möglich, dass der Systemdialog 16 zählt?

Antwort1

Ich denke, CPU-Kerne lassen sich am besten im Zusammenhang mit Symmetric MultiProcessing erklären (SMP).

Bildbeschreibung hier eingeben

Intel Core 2 DuoDiagramm zur Darstellung des physischen Layouts. Bildbeschreibung hier eingeben


Die CPU-Informationen des Systems werden im /procVerzeichnis gespeichert. Sie können von der lscpuSoftware übersichtlich dargestellt werden, wie unten dargestellt. Ich gebe zum Vergleich drei Beispiele: einen Desktop mit 2 CPU-Kernen, einen Server mit 48 und einen Raspberry Pi mit 4.

Desktop-Computer
Benutzer@Hostname:~$ lscpu
Architektur: x86_64
CPU-Betriebsmodus(e): 32-Bit, 64-Bit
Byte-Reihenfolge: Little Endian
CPU(s): 2
Liste der Online-CPU(s): 0,1
Thread(s) pro Kern: 1
Kerne pro Sockel: 2
Sockel: 1
NUMA-Knoten: 1
Hersteller-ID: GenuineIntel
CPU-Familie: 6
Modell: 60
Schritte: 3
CPU MHz: 800.000
BogoMIPS: 5586,94
Virtualisierung: VT-x
L1d-Cache: 32 KB
L1i-Cache: 32 KB
L2-Cache: 256 KB
L3-Cache: 2048 KB
NUMA-Knoten0-CPU(s): 0,1

Server
Benutzer@Hostname% lscpu
Architektur: x86_64
CPU-Betriebsmodus(e): 32-Bit, 64-Bit
Byte-Reihenfolge: Little Endian
CPU(s): 48
Liste der Online-CPU(s): 0-47
Thread(s) pro Kern: 2
Kerne pro Sockel: 12
Sockel: 2
NUMA-Knoten: 1
Hersteller-ID: GenuineIntel
CPU-Familie: 6
Modell: 62
Schritte: 4
CPU MHz: 1799.724
BogoMIPS: 3600,09
Virtualisierung: VT-x
L1d-Cache: 32 KB
L1i-Cache: 32 KB
L2-Cache: 256 KB
L3-Cache: 30720 KB
NUMA-Knoten0-CPU(s): 0-47

Himbeer-Pi
jeff@clear-pi:~ $ lscpu
Architektur: armv7l
Byte-Reihenfolge: Little Endian
CPU(s): 4
Liste der Online-CPU(s): 0-3
Thread(s) pro Kern: 1
Kerne pro Sockel: 4
Sockel: 1
Modellname: ARMv7-Prozessor rev 5 (v7l)
CPU-Maximal-MHz: 900,0000
Mindest-CPU-MHz: 600,0000

Die Serversumme beträgt 48, aber um dorthin zu gelangen, müssen drei Zahlen multipliziert werden:2*12*2=48. Bei diesem Vergleich werden Unterschiede in der Anordnung der CPU-Hersteller deutlich.

Desktop
[Thread(s) pro Kern: 1] * [Kern(e) pro Sockel: 1] * [Sockel(s): 1] = 2

Server
[Thread(s) pro Kern: 2] * [Kern(e) pro Sockel: 12] * [Sockel(s): 2] = 48

Himbeer-Pi
[Thread(s) pro Kern: 1] * [Kern(e) pro Sockel: 4] * [Sockel(s): 1] = 4  

lshwbietet mehr Systeminformationen, ist hier aber nicht ganz so hilfreich.

Desktop-Computer
Benutzer@Hostname:~$ sudo lshw
     *-CPU
          Beschreibung: CPU
          Produkt: Intel(R) Celeron(R) CPU G1840 @ 2,80 GHz
          Anbieter: Intel Corp.
          physische ID: 9
          Businfo: cpu@0
          Version: Intel(R) Celeron(R) CPU G1840 @ 2,80 GHz
          Steckplatz: SOCKET 0
          Größe: 2800MHz
          Kapazität: 3800 MHz
          Breite: 64 Bit
          Takt: 100MHz

Server
Benutzer@Hostname% sudo lshw
     *-CPU:0
          Beschreibung: CPU
          Produkt: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz
          Anbieter: Intel Corp.
          physische ID: 4
          Businfo: cpu@0
          Version: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1,80 GHz
          Steckplatz: SOCKET 0
          Größe: 1800MHz
          Kapazität: 4GHz
          Breite: 64 Bit
          Takt: 100MHz

Himbeer-Pi
Benutzer@Hostname:~ $ sudo lshw
*-CPU:0
          Beschreibung: CPU
          Produkt: CPU
          physische ID: 0
          Businfo: cpu@0
          Größe: 900MHz
          Kapazität: 900 MHz
          Fähigkeiten: cpufreq

Schließlich hat diese Methode bei mir auf mehreren verschiedenen Linux/UNIX-Betriebssystemen funktioniert, auf denen lscpu nicht verfügbar war. Es ist eine Variante von etwas, das in der Frage und den Kommentaren vorgeschlagen wurde, aber ich bevorzuge den Kurzbefehl und die einfache Ausgabe.

user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4

Referenz:Wie finde ich die Anzahl der CPU-Kerne, einschließlich der virtuellen?

Referenz:https://stackoverflow.com/questions/6481005/wie-ermittelt-man-die-anzahl-der-cpus-cores-in-linux-von-der-befehlszeile

Referenz:https://stackoverflow.com/questions/19225859/unterschied-zwischen-kern-und-prozessor

verwandte Informationen