GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man die Anzahl der Kerne eines Systems in Linux ermitteln?

Um ein vollständiges Bild zu erhalten, müssen Sie sich die Anzahl der Threads pro Kern, Kerne pro Socket und Sockets ansehen. Wenn Sie diese Zahlen multiplizieren, erhalten Sie die Anzahl der CPUs auf Ihrem System.

CPUs =Threads pro Kern X Kerne pro Socket X Sockets

CPUs sind das, was Sie sehen, wenn Sie htop ausführen (diese entsprechen nicht physischen CPUs).

Hier ist ein Beispiel von einem Desktop-Rechner:

$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1

Und ein Server:

$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s):                32
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2

Die Ausgabe von nproc entspricht der CPU-Anzahl von lscpu . Für den obigen Desktop-Rechner sollte dies mit den 8 CPU(s) übereinstimmen, die von lscpu gemeldet werden :

$ nproc --all
8

Die Ausgabe von /proc/cpuinfo sollte mit diesen Informationen übereinstimmen, zum Beispiel können wir auf dem Desktop-System oben sehen, dass es 8 Prozessoren (CPUs) und 4 Kerne (Kern-ID 0-3) gibt:

$ grep -E 'processor|core id' /proc/cpuinfo
processor   : 0
core id     : 0
processor   : 1
core id     : 0
processor   : 2
core id     : 1
processor   : 3
core id     : 1
processor   : 4
core id     : 2
processor   : 5
core id     : 2
processor   : 6
core id     : 3
processor   : 7
core id     : 3

Die cpu cores gemeldet von /proc/cpuinfo entspricht dem Core(s) per socket gemeldet von lscpu . Für den obigen Desktop-Rechner sollte dies mit den 4 Kernen pro Socket übereinstimmen, die von lscpu:

gemeldet werden
$ grep -m 1 'cpu cores' /proc/cpuinfo
cpu cores   : 4

Um Ihre Frage konkret zu beantworten, geben Sie an, wie viele Kerne Sie haben, indem Sie die Anzahl der Kerne, die Sie pro Socket haben, mit der Anzahl der Sockets multiplizieren, die Sie haben.

Kerne =Kerne pro Socket X Sockets

Für die obigen Beispielsysteme hat der Desktop 4 Kerne:

$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 4

Während der Server 16:

hat
$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 16

Ein weiteres nützliches Dienstprogramm ist dmidecode die pro Socket Informationen ausgibt. Im Fall des oben aufgeführten Serversystems erwarten wir 8 Kerne pro Socket und 16 Threads pro Socket:

$ sudo dmidecode -t 4 | grep -E 'Socket Designation|Count'
    Socket Designation: CPU1
    Core Count: 8
    Thread Count: 16
    Socket Designation: CPU2
    Core Count: 8
    Thread Count: 16

Die lscpu Der Befehl hat eine Reihe nützlicher Optionen, die Sie vielleicht ausprobieren möchten, zum Beispiel:

$ lscpu --all --extended
$ lscpu --all --parse=CPU,SOCKET,CORE | grep -v '^#'

Siehe man lscpu für Details.

Zusammengefasst:

  • Sie müssen Sockets, Kerne und Threads kennen
  • Sie müssen mit dem Begriff CPU vorsichtig sein, da er in verschiedenen Kontexten unterschiedliche Dinge bedeutet

Man muss sich Sockets und Adern pro Socket ansehen. In diesem Fall haben Sie 1 physische CPU (Sockel) mit 4 Kernen (Kerne pro Sockel).


Diese Informationen erhalten Sie unter nproc(1) Befehl

$ nproc --all
12

Es erfordert keine Root-Rechte.


Linux
  1. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  2. So erhöhen Sie die Inode-Nummer der Festplatte in Linux

  3. Wie man die Interrupt/GPIO-Nummer für einen bestimmten Pin in Linux kennt

  4. Wie kann man unter Linux feststellen, wie viele Kerne der Maschine aktiv sind?

  5. Woher weiß ich den JVM-Pfad in einem Linux-System?

So defragst du dein Linux-System

So finden Sie die Anzahl der CPU-Kerne über die Befehlszeile in Linux

So erhalten Sie die Anzahl der Prozessoren / Kerne in Linux

So erkennen Sie, ob Ihr System unter Linux über einen USB 3.0-Anschluss verfügt [Kurztipp]

So pingen Sie eine Portnummer in Linux an

So listen Sie Dienste unter Linux auf