Назад | Перейти на главную страницу

Средние нагрузки Linux и HyperThreads

Мое приблизительное понимание средней загрузки Linux заключается в том, что для каждого целого числа ядро ​​процессора работает все время. Например, 1 означает в системе с 4 ядрами, что 1 ядро ​​работает на полную мощность. Как в этом участвует HyperThreading? Это вообще учитывается при средней нагрузке?

Обычно я думаю, что ядро ​​HyperThreaded составляет 20-30% от реального ядра, в зависимости от того, насколько эффективно ваше приложение может использовать несколько потоков. Oни являются учитывается в пороговых значениях средней и средней нагрузки.

Вот пример двухпроцессорной системы Intel X5570 Nehalem до и после включения Hyperthreading. Операционная система - CentOS 5.8. Фактическая средняя очередь запуска системы / средняя загрузка существенно не изменились (приложение в значительной степени однопоточное), но изменился порог загрузки.

Тем не менее, я много раз отключаю HyperThreading ... Для моих детерминированных приложений с малой задержкой мне нужен более точный контроль над планированием ресурсов приложения. В таких случаях за переход на ядро ​​HyperThread взимается штраф. Кроме того, у меня есть одна конкретная ситуация, когда приложение работает на 4-сокетном 8-ядерном процессоре с HyperThreading. Слишком много ядер ... поэтому я просто отключил HT, чтобы сократить число логических процессоров с 64 до 32.