Включение гиперпоточности на сервере Centos 7.3 с использованием Intel Xeon E5620
У меня есть сервер Centos 7.3 с двухъядерным четырехъядерным процессором Intel Xeon E5620 @ 2,40 ГГц. Я хотел бы использовать гиперпоточность на этом сервере, но, кажется, он был отключен.
В спецификации на этот чип указано, что он должен поддерживать гиперпоточность:
Технология Intel® Hyper-Threading ‡ Да
И флаги процессора указывают на то же самое:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts mmx fxsr sse sse2 ss **ht** syscall nx rdtscp
lm constant_tsc arch_perfmon pebs bts nopl xtopolog
tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1
sse4_2 x2apic popcnt hypervisor lahf_lm ida arat dtherm
На данный момент на компьютере установлено ядро SMP (я думаю), основанное на имени:
Linux PR-ORACLE01.prvln.local 3.8.13-118.14.1.el7uek.x86_64 #2 SMP
Причина, по которой я не думаю, что гиперпоточность включена, - вывод lscpu:
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 26
Model name: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0 0 0 0 0:0:0:0 yes
1 0 0 1 0:0:0:0 yes
2 0 1 2 1:1:1:1 yes
3 0 1 3 1:1:1:1 yes
Насколько я понимаю, я должен видеть два потока на ядро, а не только один поток.
У меня была хорошая охота и единственные предложения, которые я мог найти, чтобы убедиться, что у меня запущено ядро smp (я думаю, что это поведение по умолчанию сейчас, но, исходя из названия выше, у моего ядра оно есть), или попробуй пройти acpi=ht
в ядро через grub при загрузке. (Не помогло, но acpi уже был включен, так что я не ожидал, что это сделает многое)
Эта страница здесь: https://www.golinuxhub.com/2018/01/how-to-disable-or-enable-hyper.html указывает, что вы должны иметь возможность включить / выключить его, повторив 0 или 1 в
/sys/devices/system/cpu/cpu${i}/online;
(где $ i - рассматриваемый процессор)
Этот файл не существует на моем компьютере, но есть файл / sys / devices / system / cpu / online, который просто содержит
0-3
Насколько я могу судить, это включено в BIOS (или, по крайней мере, Multiprocessor Specification установлено на 1.4)
Multiprocessor Specification: [1.4]
https://i.imgur.com/oylFALZ.png <- скриншот биоса
https://i.imgur.com/W8lo9od.png <- снимок экрана расширенного управления набором микросхем
Advanced Chipset Control
Enable memory gap: [Disabled]
ECC Config: [Disabled]
SERR signal condition [Multiple bit]
Я неправильно интерпретирую вывод lspcu? Или мне нужно что-то еще сделать, чтобы включить это?
Спасибо
1 ответ
Пожалуйста, включите Hyperthreading в системном ПЗУ или в утилите BIOS.
В зависимости от серверного решения это необходимо сделать до загрузки системы.