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 wurdeecho 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"