Как гиперпоточность/SMT* влияет на производительность различных типов приложений в облачных средах.
Цель исследования — выяснить, какие типы нагрузок выигрывают от SMT, а какие нет.
* SMT позволяет одному физическому процессору выполнять несколько потоков одновременно.
1. Авторы выяснили, что приложения, активно работающие с вводом-выводом (базы данных, очереди, файловые и веб-серверы, кеши), нейтральны к включению SMT.
Их производительность в большей степени зависит от скорости памяти, дисков и сетевых карт, а не от работы процессора.
👉 Потому включение SMT позволяет лучше утилизировать оборудование и экономить ресурсы.
2. Приложения с высокой нагрузкой на процессор (рендеринг видео, сложные расчёты, криптография, high-frequency trading и т. д.) напротив реагировали на SMT негативно - потоки начинают конкурировать за общие ресурсы физического ядра, что приводит к росту задержек.
👉 В окружениях с CPU-bound нагрузкой рекомендуется отключать SMT.
Не стоит слепо доверять любым исследованиям и это не исключение. Хорошо рассматривать их как повод разобраться глубже и провести свои тесты, учитывающие конкретную специфику.
P.S. Кстати метрика IPC (instructions per cycle), которую мы недавно обсуждали, должна помогать в определении профиля нагрузки.