Hyper-Threading - это технология одновременной многопоточности (SMT) Intel. При включенной Hyper-Threading каждое физическое ядро представлено как два "логических процессора", каждый из которых может выполнять задания одновременно, разделяя ресурсы физического ядра.
Определить включен ли Hyper-threading в виртуальной машине не представляется возможным, так как гипервизор передает потоки как реальные ядра.
Есть несколько способов:
lscpu
Команда lscpu показывает информацию о процессоре и архитектуре системы. В частности нас интересует параметр "Thread(s) per core". Если указана 1, то для каждого ядра доступен лишь один поток и Hyper-Threading, если указана 2, то Hyper-Threading включен.
Для проверки статуса можно использовать следующую команду
1 | lscpu | grep Thread |
или пример с AWK
1 | lscpu | grep Thread |awk '{if ($4==2) print "Hyper-threading enabled"; else print "Hyper-threading disabled"; }' |
/sys/devices/system/cpu/smt/active
Так же возможно узнать статус Hyper-Threading обратившись к /sys/devices/system/cpu/smt/active
1 | cat /sys/devices/system/cpu/smt/active |
Значение:
0 - Hyper-Threading отключен
1 - Hyper-Threading включен
dmidecode
Проверить статус Hyper-Threading так же можно с помощью утилиты dmidecode
1 | dmidecode -t processor | grep Count |
Необходимо сравнить два параметра Core Count и Thread Count, если количество потоков (Thread Count) в два раза больше количества ядер (Core Count), то Hyper-Threading включен.