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

Warum zeigt top eine andere Anzahl von Kernen an als cpuinfo?

Der X5560 ist ein einzelner Chip . Es sieht so aus:

grep "physical id" sagt Ihnen, dass Sie EINEN physischen Prozessor installiert haben.

Wenn Sie den Heatspreader von der Oberseite abnehmen, können Sie dies sehen - ein einzelnes physisches Die (Gesicht nach unten) :

Wenn Sie diesen Würfel entfernen und umdrehen könnten, würde es so aussehen:

Auf diesem einzelnen physischen Chip befinden sich vier physische CPU-Kerne auf dem Silizium aufgebaut :

grep "cpu cores" sagt Ihnen, dass Ihr Prozessor über vier physische Kerne verfügt.

Jeder Kern ist ein einzelner Prozessor mit einer Gleitkommaeinheit, einer Reihe von Integer-Ausführungseinheiten, einem Paar Registerstapel und einigen anderen Zauberei, die es jedem einzelnen Kern ermöglichen, effektiv zwei unabhängige Befehlsströme (Threads) gleichzeitig 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 in der Lage ist, acht gleichzeitige Threads für die Ausführung zu einem bestimmten Zeitpunkt zu planen.


Welche CPU verwendest du? Wie viele Threads sind pro physischem Kern vorhanden?

cat /proc/cpuinfo zeigt die Anzahl der physischen Kerne an, während top zeigt die Gesamtzahl der vorhandenen Threads.

Ich denke, Ihre CPU hat 4 physische Kerne und 2 logische Kerne pro physischem Kern. Es ist also top zeigt 8.

Außerdem Inhalt von /proc/cpuinfo ist etwas implementierungsabhängig. Wie in einer gerooteten Android-Shell der cpuinfo Datei enthält keinen Begriff cpu cores .

Allerdings in cpuinfo jeder Thread wird als processor : X bezeichnet , wobei X ist Thread Nr. Die letzte Thread-Nr. soll also gleich top/htop sein Ausgabe.

Ergebnis von nproc --all muss auch mit top/htop übereinstimmen


top zeigt eine „CPU“ pro logischer CPU; auf x86 ist das das Produkt aus der Anzahl der Sockets im System, der Anzahl der physischen Kerne pro Socket und der Anzahl der Threads pro Kern.

Die cpu cores Eintrag in /proc/cpuinfo , wieder auf x86, zeigt die Anzahl der physischen Kerne. Um die Anzahl der logischen Kerne zu finden, wie in top verwendet , sollten Sie sich die siblings ansehen Wert stattdessen:

cat /proc/cpuinfo | grep "siblings" | uniq

Dies ist detailliert in der Kernel-Dokumentation beschrieben.

lscpu liefert Informationen über die installierte(n) CPU(s), die einfacher zu verstehen sind als /proc/cpuinfo (oder besser gesagt, es stellt dieselben Informationen auf einfachere Weise dar).


Linux
  1. Warum gibt Find -mtime +1 nur Dateien zurück, die älter als 2 Tage sind?

  2. Linux – Warum zeigt Linux sowohl mehr als auch weniger Speicher an, als ich physisch installiert habe?

  3. Warum findet `find . -type F` dauert länger als `find .`?

  4. Warum funktioniert `exit &` nicht?

  5. Warum gibt Ls -l eine andere Größe als Ls -s aus?

Die 10 wichtigsten Gründe für die Verwendung von Linux

Warum ist Printf besser als Echo?

Warum zeigt das Htop-Meter> 90 % an, während die Tabelle 0,0 % anzeigt?

Warum verwendet Linux eine Swap-Partition und keine Datei?

Warum unterscheidet sich das „sudo“-Passwort vom „su root“-Passwort?

Warum funktioniert find -mtime bei Dateien mit unterschiedlichen Zeitzonen nicht wie erwartet?