GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comprobando si HyperThreading está habilitado o no?

Siempre he usado lo siguiente y he mirado 'Hilo(s) por núcleo:'.

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

Tenga en cuenta, sin embargo, que esta técnica fallará si algún procesador lógico se ha apagado con un simple

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

Notas añadidas el 8 de julio de 2014: Como señaló Riccardo Murri, mi respuesta a continuación solo muestra si el procesador informa que admite hyperthreading. Por lo general, *nix O/S están configurados para habilitar hyperthreading si es compatible. Sin embargo, para verificar esto mediante programación, ¡vea, por ejemplo, la respuesta de Nils!

---- Respuesta original del 25 de marzo de 2012:

De hecho, estás en el camino correcto :) con

dmidecode -t processor | grep HTT

En Linux, generalmente solo busco "ht" en la línea "flags" de /proc/cpuinfo . Ver por ejemplo

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

o si quieres incluir el "ht" en el patrón

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

(\b coincide con los límites de las palabras y ayuda a evitar falsos positivos en los casos en que "ht" es parte de otra marca).


Si la cantidad de procesadores lógicos es el doble de la cantidad de núcleos que tiene HT, use el siguiente script para decodificar /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. ¿Aes-ni no pasó al invitado en Virtualbox?

  2. Debian:¿Acl no está habilitado pero funciona?

  3. rm:comando no encontrado

  4. mv:comando no encontrado

  5. ln:comando no encontrado

Uso elevado de la CPU:la instalación de SQL no se ha completado

w:comando no encontrado

df:comando no encontrado

du:comando no encontrado

¿Cómo verificar si el kernel de Linux está habilitado para Retpoline o no?

¿Por qué algunos modelos de CPU de la familia Intel 6 (Core 2, Pentium M) no son compatibles con intel_idle?