Grundlegendes zur Ausgabe von lscpu

8

Sie können die Ausgabe von lscpuBefehl sehen -

jack@042:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-55
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Stepping:              1
CPU MHz:               2600.000
CPU max MHz:           2600.0000
CPU min MHz:           1200.0000
BogoMIPS:              5201.37
Virtualization:        VT-x
Hypervisor vendor:     vertical
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-13,28-41
NUMA node1 CPU(s):     14-27,42-55

Ich kann sehen, dass es 2Sockets gibt (was ist wie ein Prozessor?) Und in jedem Sockel haben wir 14Kerne. Also insgesamt 2x14=28physische Kerne. Normalerweise kann eine CPU mehrere Kerne enthalten, sodass die Anzahl der CPUs niemals kleiner als die Anzahl der Kerne sein kann. Aber wie in der Ausgabe gezeigt CPUs(s): 56und das ist es, was mich verwirrt.

Ich kann das sehen Thread(s) per core: 2, also 28können sich diese Kerne wie 2x28=56logische Kerne verhalten .

Frage 1: Was bedeutet das CPUs(s): 56? Ist CPU(s)bezeichnete Anzahl von Virtual / Logical Kern, da es keine physischen Kern Kern atleast sein kann?

Frage 2: Was bedeutet das NUMA node? Stellt es die Steckdose dar?

cph_sto
quelle

Antworten:

11

"CPU (s): 56" steht für die Anzahl der logischen Kerne, was "Thread (s) pro Kern" × "Kern (en) pro Socket" × "Socket (s)" entspricht. Ein Sockel ist ein physisches CPU-Paket (das einen Sockel auf dem Motherboard belegt). Jeder Socket hostet eine Reihe von physischen Kernen, und jeder Kern kann einen oder mehrere Threads ausführen. In Ihrem Fall haben Sie zwei Sockets mit jeweils einer Xeon E5-2690 v4-CPU mit 14 Kernen. Da dies Hyper-Threading mit zwei Threads unterstützt, kann jeder Kern zwei Threads ausführen.

"NUMA-Knoten" repräsentiert die Speicherarchitektur; "NUMA" steht für "uneinheitliche Speicherarchitektur" . In Ihrem System ist jeder Socket an bestimmte DIMM-Steckplätze angeschlossen, und jedes physische CPU-Paket enthält einen Speichercontroller, der einen Teil des gesamten Arbeitsspeichers verwaltet. Infolgedessen ist nicht der gesamte physische Speicher von allen CPUs gleichermaßen zugänglich: Eine physische CPU kann direkt auf den von ihr gesteuerten Speicher zugreifen, muss jedoch die andere physische CPU durchlaufen, um auf den Rest des Speichers zuzugreifen. In Ihrem System befinden sich die logischen Kerne 0–13 und 28–41 in einem NUMA-Knoten, der Rest im anderen. Ja, ein NUMA-Knoten entspricht einem Socket, zumindest in typischen Xeon-Systemen mit mehreren Sockets.

Stephen Kitt
quelle
Stefan, in diesem en.wikipedia.org/wiki/Non-uniform_memory_access#/media/… (mit freundlicher Genehmigung des Wikipedia-Links, auf den Sie in Ihrem Beitrag verwiesen haben) - Befinden sich auf jedem Socket 2 NUMA-Knoten? Wie ich verstanden habe, beträgt der RAM in dieser Konfiguration 32 GB und jeder Socket hat 2 NUMA-Knoten , wobei jeder Knoten von 1 CPU-Paketen gemeinsam genutzt wird, die aus 8 logischen oder anderen Prozessoren bestehen. Hab ich recht? Wie Sie bereits erwähnt haben, gibt es in meinem System einen NUMA-Knoten pro Socket (NUMA-Knoten 0 CPU (s): 0-13,28-41). Ich nehme an, dieses Bild ist keine Abstraktion der Architektur meines Systems.
cph_sto
1
Dieses Bild zeigt die NUMA-Architektur einer Bulldozer-CPU. Ihre Xeon-CPU hat eine andere Architektur. NUMA-Layouts hängen von den Speichercontrollern ab, nicht von den Sockets (direkt). Sie können stattdessen einen Speichercontroller pro Socket (wie beim aktuellen Xeon), mehrere Speichercontroller pro Socket oder sogar externe Speichercontroller verwenden.
Stephen Kitt