Hyper-Threading – ¿Cómo saber si lo tenemos activado desde Linux?

Hyper threading es una tecnología en CPUs multicore que sirve para mejorar el rendimiento de los procesos que se ejecutan en el sistema utilizando diferentes hilos en la misma CPU física. Permite ejecutar más de un hilo por CPU.

Dependiendo del modelo de CPU, podremos ejecutar más o menos threads. Por ejemplo, una CPU física que tenga dos cores, podrá ejecutar dos threads al mismo tiempo.

Una CPU fisica con dos threads

¿Cómo sabemos si tenemos activado el Hyper Threading?

El Hyper Threading es una característica que hay que activar desde la BIOS pero para entrar, hay que reiniciar el sistema y eso es algo que no siempre podemos hacer cuando queramos.

Con comandos de Linux también podemos saber si está activo el Hyper Threading sin necesidad de rebotar el sistema. Hay varios métodos para ello:

  • Con el comando lscpu:
[root@server1 ~]# lscpu |grep -i thread
Thread(s) per core:    2
[root@server1 ~]#
  • Con el comando dmidecode:
[root@server1 ~]# dmidecode -t processor | grep Count
        Core Count: 4
        Thread Count: 8
        Core Count: 4
        Thread Count: 8
[root@server1 ~]#
  • Revisando el archivo /sys/devices/system/cpu/smt/active:
[root@server1 ~]# cat /sys/devices/system/cpu/smt/active
1
[root@server1 ~]#

¿Cómo contar el número de Threads que está utilizando un proceso de Linux?

Una vez que tenemos el Hyperthreading activado, podemos comprobar si los procesos están utilizando multithreading, si están programados para ello.

En Linux, encontraremos esta información en /proc/PID/status:

[root@server1 ~]# cat /proc/13248/status |grep -i thread
Threads:        3
[root@server1~]#
COMPÁRTEME

Deja un comentario