Почему использование Hyper-Threading может привести к снижению производительности

10

Я читал в разных местах, как это , что Hyper-Threading приводит к снижению производительности.

Я не могу понять, почему или как гиперпоточность приводит к деградации.

Почему это так, что даже когда Hyper-Threading позволяет ОС использовать свободные ресурсы, происходит деградация.

Хотя тесты указывают на то, что виновником является гиперпоточность, но может кто-нибудь объяснить мне причину этого.

Спасибо

DW
источник

Ответы:

8

Казалось бы, ответ, как обычно, как-то связан с кэшем. Поскольку гипер-потоки используют одни и те же кэши L1 и L2, один гипер-поток может уничтожить кэши другого. В худшем случае потоки по очереди уничтожают кэш другого, и производительность снижается, поскольку кеши переполняются только для повторного удаления.

Конечно, это, вероятно, очень специфично для рабочей нагрузки, что объясняет, почему проблема чаще всего наблюдается на серверах.

Также стоит отметить, что ответ частично зависит от того, что вы подразумеваете под «производительностью». Например, в системах реального времени ваш показатель производительности - это предсказуемость, а не пропускная способность, что негативно сказывается на гиперпоточности, вызывая непредсказуемые задержки.

superdesk
источник