hostprofi.ru
Подобрать хостинг
Термин·буква Г

Гиперпоточность (Hyper-Threading)

краткое определение

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

Гиперпоточность (Hyper-Threading Technology, HTT) — реализация одновременной многопоточности (SMT, Simultaneous Multi-Threading) от Intel. Каждое физическое ядро представляется операционной системе как два логических CPU-потока. Оба потока используют общие исполнительные блоки ядра, кэши L1/L2/L3 и очередь инструкций, но имеют независимые регистры, счётчик команд и состояние выполнения.

Как работает Hyper-Threading

Физическое ядро имеет несколько исполнительных блоков (ALU, FPU, Load/Store Unit), которые часто простаивают, пока один поток ждёт данных из памяти или кэша (latency hiding). HT позволяет заполнить эти паузы инструкциями второго потока — CPU эффективнее использует конвейер. Реальное ускорение: 15–30% для большинства серверных задач (веб-серверы, базы данных), до 50% для workload с высокой долей I/O-ожиданий. Для чисто вычислительных задач прирост меньше.

AMD реализует аналогичную технологию под названием SMT. AMD EPYC поддерживает 2-way SMT. В Hyper-V и KVM vCPU создаются из физических потоков — сервер с 16 ядрами и HT предоставляет 32 hardware threads для vCPU.

Hyper-Threading и безопасность

Общие кэши L1/L2 при HT создают attack surface для side-channel атак. Уязвимость MDS (Microarchitectural Data Sampling, CVE-2018-12130 и связанные) позволяет читать данные соседнего потока через shared буферы. Для PCI DSS-сред и мультитенантных VPS некоторые провайдеры отключают HT — это даёт полную изоляцию за счёт ~20–30% потери производительности. Патчи ядра (MDS mitigation) снижают риск, но не устраняют его полностью.

HT в контексте виртуализации

При создании VM гипервизор может представить CPU как «cores with HT» или «cores only». В Proxmox VE: параметр cpu: host передаёт topology гостю. Для databases (PostgreSQL, MySQL) рекомендуется vcpus = physical cores (без HT), чтобы избежать конкуренции потоков за shared кэш. Для веб-серверов — использовать все hardware threads.

История

Intel анонсировала Hyper-Threading в Xeon MP Gallatin (2002) и Pentium 4 Northwood (2002). Технология отключалась и включалась в разных поколениях: в Nehalem (2008) — снова включена для серверного сегмента. Intel Xeon Scalable (Skylake, 2017) — 28 ядер × 2 потока = 56 hardware threads. Ice Lake Xeon (2021) — до 40 ядер × 2 = 80 потоков.

HT и виртуализация: практические советы

При выборе VPS: vCPU на гипервизоре с HT — это половина физического ядра. Сервер с 16 ядрами Xeon + HT имеет 32 hardware threads и может предоставить 32 vCPU без оверкоммита. Если провайдер предоставляет 4 vCPU из 32-поточного хоста — это логично. Для CPU-интенсивных задач (компиляция, математика) лучше запрашивать меньше vCPU у провайдера с CPU pinning, чем много vCPU у провайдера с оверкоммитом. Для веб-серверов и I/O-нагруженных приложений: количество vCPU = количество worker-процессов, HT помогает при ожидании I/O.

Отключение Hyper-Threading: когда это нужно

Случаи, когда HT стоит отключить: 1) Мультитенантная среда с жёсткими требованиями безопасности (PCI DSS Level 1, банки, ФСБ) — side-channel атаки через shared кэш. 2) Highload-базы данных, где два потока конкурируют за L2/L3 кэш одного ядра и деградируют друг друга. 3) HPC-задачи с полной загрузкой ядер: при HT второй поток «мешает» первому, занимая ресурсы исполнительного блока. Отключение HT через BIOS даёт: +10–20% производительности для чисто вычислительных задач, полная изоляция потоков. В Proxmox: можно передать topology без HT через cpu: host,hidden=1.

Intel Core Ultra (Meteor Lake, 2023) — гибридная архитектура с P-cores и E-cores, где HT присутствует только на P-cores. AMD Threadripper 7980X (2023): 64 ядра × 2 SMT = 128 потоков — рекорд для HEDT-платформы.

Другие термины