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

Überprüfen Sie, ob HyperThreading aktiviert ist oder nicht?

Ich habe immer nur Folgendes verwendet und mir 'Thread (s) per core:' angesehen.

hostname:~ # lscpu
Architecture:          x86_64
CPU(s):                24
Thread(s) per core:    2                <-- here
Core(s) per socket:    6
CPU socket(s):         2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               1596.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K

Beachten Sie jedoch, dass diese Technik fehlschlägt, wenn irgendein logischer Prozessor mit einem einfachen

ausgeschaltet wurde
echo 0 > /sys/devices/system/cpu/cpuX/online

Anmerkungen hinzugefügt am 8. Juli 2014: Wie Riccardo Murri betonte, zeigt meine Antwort unten nur, ob der Prozessor meldet, Hyperthreading zu unterstützen. Im Allgemeinen sind *nix-Betriebssysteme so konfiguriert, dass Hyperthreading aktiviert wird, sofern dies unterstützt wird. Um dies jedoch tatsächlich programmgesteuert zu überprüfen, siehe zum Beispiel die Antwort von Nils!

---- Ursprüngliche Antwort vom 25. März 2012:

Sie sind in der Tat auf dem richtigen Weg :) mit

dmidecode -t processor | grep HTT

Unter Linux suche ich im Allgemeinen einfach nach „ht“ in der „flags“-Zeile von /proc/cpuinfo . Siehe zum Beispiel

grep '^flags\b' /proc/cpuinfo | tail -1

oder wenn Sie das "ht" in das Muster aufnehmen möchten

grep -o '^flags\b.*: .*\bht\b' /proc/cpuinfo | tail -1

(\b entspricht den Wortgrenzen und hilft, Fehlalarme in Fällen zu vermeiden, in denen "ht" Teil eines anderen Flags ist.)


Wenn die Anzahl der logischen Prozessoren doppelt so hoch ist wie die Anzahl der Kerne, haben Sie HT. Verwenden Sie das folgende Skript, um /proc/cpuinfo zu decodieren :

#!/bin/sh
CPUFILE=/proc/cpuinfo
test -f $CPUFILE || exit 1
NUMPHY=`grep "physical id" $CPUFILE | sort -u | wc -l`
NUMLOG=`grep "processor" $CPUFILE | wc -l`
if [ $NUMPHY -eq 1 ]
  then
    echo This system has one physical CPU,
  else
    echo This system has $NUMPHY physical CPUs,
fi
if [ $NUMLOG -gt 1 ]
  then
    echo and $NUMLOG logical CPUs.
    NUMCORE=`grep "core id" $CPUFILE | sort -u | wc -l`
    if [ $NUMCORE -gt 1 ]
      then
        echo For every physical CPU there are $NUMCORE cores.
    fi
  else
    echo and one logical CPU.
fi
echo -n The CPU is a `grep "model name" $CPUFILE | sort -u | cut -d : -f 2-`
echo " with`grep "cache size" $CPUFILE | sort -u | cut -d : -f 2-` cache"

Linux
  1. Env oder nicht Env?

  2. Warum ist Lpd bei der Übertragung nicht standardmäßig aktiviert?

  3. Debian – ACL ist nicht aktiviert, aber es funktioniert?

  4. id:Befehl nicht gefunden

  5. w:Befehl nicht gefunden

Warum ist Cd kein Programm?

Aes-ni nicht an Gast in Virtualbox übergeben?

CPU ist kostenlos, aber Bash-Skript nutzt nicht alle CPU-Ressourcen?

Hohe CPU-Auslastung – SQL-Installation nicht abgeschlossen

ln:Befehl nicht gefunden

Warum werden einige CPU-Modelle der Intel-Familie 6 (Core 2, Pentium M) nicht von intel_idle unterstützt?