GNU/Linux >> Znalost Linux >  >> Linux

Kontrola, zda je HyperThreading povolen nebo ne?

Vždy jsem používal pouze následující a podíval jsem se na 'Vlákna na jádro:'.

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

Všimněte si však, že tato technika selže, pokud byl některý logický procesor vypnut jednoduchým

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

Poznámky přidány 8. července 2014: Jak zdůraznil Riccardo Murri, moje odpověď níže pouze ukazuje, zda procesor hlásí podporu hyperthreadingu. Obecně jsou *nix O/S nakonfigurovány tak, aby umožňovaly hyperthreading, pokud je podporován. Chcete-li to však skutečně zkontrolovat programově, podívejte se například na Nilsovu odpověď!

---- Původní odpověď z 25. března 2012:

Jste skutečně na správné cestě :) s

dmidecode -t processor | grep HTT

V Linuxu obecně hledám "ht" na řádku "flags" /proc/cpuinfo . Viz například

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

nebo pokud chcete zahrnout "ht" do vzoru

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

(\b odpovídá hranicím slova a pomáhá vyhnout se falešným poplachům v případech, kdy je „ht“ součástí jiného příznaku.)


Pokud je počet logických procesorů dvojnásobkem počtu jader, máte HT. K dekódování použijte následující skript /proc/cpuinfo :

#!/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. id:příkaz nenalezen

  2. w:příkaz nenalezen

  3. df:příkaz nenalezen

  1. du:příkaz nenalezen

  2. Jak zjistím, zda je povolena volba set -e nebo ne?

  3. Jak zkontrolovat, zda je v jádře Linuxu povolen Retpoline nebo ne?

  1. Aes-ni nebylo předáno hostovi ve Virtualboxu?

  2. rm:příkaz nenalezen

  3. Firewalld – protokolování odepřených paketů povoleno – neprobíhá protokolování