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

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

1 ответ

Решение

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

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

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

введите описание здесь

Другие вопросы по тегам