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).
Intel Core 2 DuoDiagramm zur Darstellung des physischen Layouts.
Die CPU-Informationen des Systems werden im /proc
Verzeichnis gespeichert. Sie können von der lscpu
Software ü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
lshw
bietet 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/19225859/unterschied-zwischen-kern-und-prozessor