Hyper threading linux check

How to check whether Hyper Threading is enabled or not in Ubuntu?

I am using the Ubuntu. How can I check whether Hyper Threading is enabled or not. And if it is disabled, how can I enable it?

4 Answers 4

You can check the pseudo file /sys/devices/system/cpu/smt/active — it contains 1 if hyperthreading is enabled and 0 otherwise.

$ printf 'Hyperthreading '; \ sed -e s/1/enabled/ -e s/0/disabled/ /sys/devices/system/cpu/smt/active 

You can either enable it in the BIOS — or in Linux with

# echo on > /sys/devices/system/cpu/smt/control 
# cat /sys/devices/system/cpu/smt/control 

I have a quad core cpu, and have 8 total threads, which is also what i see with lscpu . but i have read on internet that there should be 16 threads if i have hyperthreading enabled. your last command returned on for me. but, why am i only getting 8 threads then?

@NaveenKumar — most CPUs that implement hyperthreading implement 2 threads of execution per core. So 8 threads is expected for a quad core CPU then. You can also cross-check by looking up your CPU model name in the vendor’s online CPU database.

@user2023370 dmidecode just reads out the DMI tables which are populated by the BIOS at some point during system initialization. Thus the information contained therein isn’t necessarily accurate, especially after an operating system kernel (re-)initializes much hardware. If you want to get on the bottom of this you can cross check these numbers against the data sheet of your CPU and the lscpu output.

Источник

Как проверить, включен ли Intel Hyper-Threading в Linux

Hyper-Threading — это технология одновременной многопоточности (SMT) Intel, предназначенная для улучшения параллелизма выполнения процессоров x86. При включенной технологии Hyper-Threading каждое физическое ядро представлено в виде двух «логических процессоров», каждый из которых может выполнять задания одновременно, разделяя при этом ресурсы физического ядра. Когда один логический процессор останавливается или прерывается, другой логический процессор на том же ядре может украсть ресурсы у остановившегося процессора. Таким образом, ожидается, что технология Hyper-Threading улучшит общую пропускную способность ЦП и будет особенно полезна для многопоточных приложений, которые включают в себя сочетание рабочих нагрузок с интенсивным использованием ЦП и операций ввода-вывода, таких как кодирование видео, 3D-рендеринг, игры и т. д.

Читайте также:  Установка драйверов видеокарты arch linux

Если вы хотите проверить, включена ли технология Hyper-Threading в вашей системе Linux, это можно сделать несколькими способами.

Способ первый: настройки BIOS

Hyper-Threading — это функция процессора ЦП. Следовательно, обычно вам нужно использовать настройки BIOS, чтобы проверить, включена ли Hyper-Threading. Меню BIOS различается в разных системах, а настройка Hyper-Threading обычно находится в разделе «Дополнительно», «Процессоры» или «Производительность». Например, элемент управления Hyper-Threading в BIOS Dell XPS 13 показан ниже.

Второй метод: lscpu

Предположим, у вас нет доступа к меню BIOS вашей системы по какой-либо причине (например, из-за удаленного доступа). В этом случае вы можете использовать команду lscpu , которая показывает информацию об архитектуре процессора вашей системы. В частности, ищите запись Thread(s) per core в его выходных данных. Если в этой записи указано «1», это означает, что для каждого ядра доступен только один поток. Следовательно, Hyper-Threading отключен. Если он говорит «2», это означает, что Hyper-Threading включен.

Поэтому просто используйте следующую команду для проверки состояния.

Способ третий: /sys/devices/system/cpu/smt/active

Другой способ проверить состояние Hyper-Threading из командной строки — получить доступ к псевдофайлу, расположенному в /sys/devices/system/cpu/smt/active . Содержимое этого файла будет 1 (или on ), если Hyper-Threading включен, и 0 (или off ). ) в противном случае.

$ cat /sys/devices/system/cpu/smt/active

Метод четвертый: dmidecode

Вы также можете проверить, включена ли технология Hyper-Threading, с помощью инструмента командной строки dmidecode . Запустите его с -t процессором и сравните «Счетчик ядер» и «Счетчик потоков» в выходных данных. Если эти два значения совпадают, это означает, что Hyper-Threading не включен. Если «Количество потоков» вдвое превышает «Количество ядер», это означает, что Hyper-Threading включен.

$ sudo dmidecode -t processor | grep Count

Источник

Проверить поддержку Hyper-Threading в Linux

Hyper-Threading — это технология одновременной многопоточности (SMT) Intel. При включенной Hyper-Threading каждое физическое ядро представлено как два «логических процессора», каждый из которых может выполнять задания одновременно, разделяя ресурсы физического ядра.

Определить включен ли Hyper-threading в виртуальной машине не представляется возможным, так как гипервизор передает потоки как реальные ядра.

lscpu

Команда lscpu показывает информацию о процессоре и архитектуре системы. В частности нас интересует параметр «Thread(s) per core». Если указана 1, то для каждого ядра доступен лишь один поток и Hyper-Threading, если указана 2, то Hyper-Threading включен.

Читайте также:  Which linux kernel command line

lscpu

Для проверки статуса можно использовать следующую команду

/sys/devices/system/cpu/smt/active

Так же возможно узнать статус Hyper-Threading обратившись к /sys/devices/system/cpu/smt/active

cat /sys/devices/system/cpu/smt/active

Значение:
0 — Hyper-Threading отключен
1 — Hyper-Threading включен

dmidecode

Проверить статус Hyper-Threading так же можно с помощью утилиты dmidecode

dmidecode -t processor | grep Count

Необходимо сравнить два параметра Core Count и Thread Count, если количество потоков (Thread Count) в два раза больше количества ядер (Core Count), то Hyper-Threading включен.

Похожие записи:

Источник

How to check if Hyper Threading (HT) is enabled or disabled on my Linux server

Using the below command you can find the CPU vendor and model number using which you can easily get the CPU documentation from the vendor page.

Next you must look out for below information from the CPU documentation, I found mine at Intel® Xeon® Processor E5 v3 Family

Here look out for number of cores the CPU has i.e. no. of threads as it shows below

So with this we know my CPU has total 16 logical CPUs if HT is not enabled and 32 logical CPUs if HT is enabled

Now lets checking the real stats from the server, ‘ lscpu ‘ and ‘ /proc/cpuinfo ‘ are the two tools which will help us get this information

Below is my output of lscpu

# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core : 2
Core(s) per socket : 8
Socket(s) : 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
Stepping: 2
CPU MHz: 2600.000
CPU max MHz: 2600.0000
CPU min MHz: 1200.0000
BogoMIPS: 5193.74
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-31

Here is my first HINT, it shows we have 2 sockets, 8 cores and 2 thread per core.
That is unlikely and mostly in systems with disabled hyper threading we would get «1 thread per core»

Читайте также:  Linux start command in background

Check the total number of physical CPUs

The following command will show how many active physical processors a system has

Number of cores per CPU

On a system with multi-core processors, the following command should report the number of CPU cores per physical processor (though in rare cases it might not).

Example: If this number is 8 and physical CPUs is 2, then each of the 2 physical processors has 8 CPU cores, leading to a total of 16 cores.

We can validate the same using below command, using this we can check the number of cores per physical CPUs
For the first CPU (0)

# cat /proc/cpuinfo | egrep -E «^physical|core id»| xargs -l2 | sort -u | awk -F » » ‘‘ | grep 0 | wc -l
8

For the second CPU (1)

# cat /proc/cpuinfo | egrep -E «^physical|core id»| xargs -l2 | sort -u | awk -F » » ‘‘ | grep 1 | wc -l
8

Again coming back to the calculation

For this with 2 physical CPUs(sockets) and 8 cores we would expect 16 logical CPUs if hyper threading is not enabled

But here we have 32 CPUs so this clearly stats that hyper threading is enabled.

Lets take an example from another of my server where HT is disabled

# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core : 1
Core(s) per socket : 8
Socket(s) : 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
Stepping: 2
CPU MHz: 2600.000
CPU max MHz: 2600.0000
CPU min MHz: 1200.0000
BogoMIPS: 5193.67
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-15

Here as you see «Threads per core» is 1 so this gives us a HINT that there is a possibility that HT is disabled

Here if we multiply the no of sockets (2) with no of cores (8) then we must have 16 cores if HT is not enabled

So we know now HT is disabled on this server.

I hope the article was useful.

Источник

Оцените статью
Adblock
detector