Как может существовать средняя нагрузка 0,00?

Я понимаю, что балансировка нагрузки - это способ измерения загруженности процессора. Однако я не понимаю, как может существовать среднее значение нагрузки 0.00. Разве ядро ​​не всегда работает? Разве это не принимает участие в загрузке процессора?

12
задан 23 November 2017 в 05:19

3 ответа

Среднее значение загрузки за период времени - это среднее количество процессов, которые конкурировали за ЦП за этот период времени. «Ядро» не запускается, если ничего не поделаешь; более конкретно, если ничего не поделаешь, то ЦП передается специальному «простаивающему» потоку, который не учитывается (и который может делать такие вещи, как помещение ЦП в состояние, в котором он ожидает прерывания).

Так, например, среднее значение нагрузки 0,6 за 5 минут обычно означает, что в течение этих 5 минут процессор использовался в течение 3 минут каким-либо процессом (процессами) (или ядром), и в общей сложности 2 минуты было без дела. Но, как отмечает @UKMonkey, это может означать, что после 4 с половиной минут бездействия 6 процессов конкурировали за процессор в течение последних 30 секунд ...

Процессор простаивает, так как нет процесса, который хочет использовать его для запуска кода, потому что все процессы либо ожидают завершения операции ввода или вывода, либо находятся в режиме ожидания, ожидая активации в определенное время в будущем.

@ Ссылки Пантеры дают более подробное обсуждение средних значений нагрузки.

16
ответ дан 23 November 2017 в 05:19

Средняя нагрузка 0,00 в основном означает, что ваша система простаивает и что в течение измеренного времени нет никаких задержек, нагрузок или узких мест для вашего ЦП.

Это не означает, что ваш процессор неактивен, это просто означает, что, если процесс требует процессорного времени, ждать не приходится.

Трудно сказать больше о том, что вы опубликовали, поскольку это может зависеть от того, как вы измерили свою нагрузку (система, на пользователя?) И в течение какого времени.

Некоторые подробности и интересное чтение см. В

https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/

http: // blog. scoutapp.com/articles/2009/07/31/understanding-load-averages

http://www.brendangregg.com/blog/2017-08-08/linux-load -averages.html

2
ответ дан 23 November 2017 в 05:19

Среднее значение загрузки - это показатель того, насколько перегружено ядро ​​ЦП, с точки зрения количества процессов, желающих использовать его одновременно.

Предполагается, что одноядерный (однопоточный) процессор:

  • 0,0

    Процессор вообще ничего не делает. Если бы процесс начинал использовать процессор, то он был бы единственным, использующим его.

    Неактивный процессор не означает, что процессы не запущены. Например, фоновые службы и ядро ​​все еще работают и все еще занимают память. Они просто не используют процессор, потому что ничего не делают.

  • 1.0

    Процессор находится в режиме максимальной загрузки, но между процессами использования ЦП нет конфликтов. То есть выполняется только один процесс, поэтому он может требовать 100% времени ЦП для себя. Кроме того, несколько процессов запущены, но ни один не требует 100% ЦП, а их совокупное использование ЦП составляет до 100%. Все они по-прежнему работают так же быстро, как и при работе, даже если бы у них был процессор.

  • Больше 1,0

    Процессор используется максимально, и есть несколько процессов, желающих использовать его одновременно, поэтому они эффективно работают медленнее, чем в противном случае возможность работать на простаивающем процессоре. Например, среднее значение загрузки 3,0 указывает, что процессы работают на одну треть скорости, с которой они хотят работать. Среднее значение нагрузки 50,0 означает, что процессы работают с 1/50 скорости, которую они хотят запустить, из-за всех других запущенных процессов. То есть цифры выше 1,0 указывают на то, что доступный ЦП растягивается между все большим числом процессов.

Наличие многоядерного ЦП не меняет значения цифр, но может изменить их интерпретацию. Например, если у вас 4-х ядерный ЦП, загрузка 1.0 все равно эквивалентна одному процессу, использующему 100% ЦП на одном ядре, но есть три других ядра. Таким образом, на 4-ядерном процессоре точка максимальной эффективности равна 4,0, а не 1,0, а точка, в которой все работает с 1/3 эффективности, равна 12,0, а не 3,0. Чтобы добавить к сложности, один процесс может иметь более одного потока, каждый из которых запрашивает свой собственный ЦП. Таким образом, один процесс может использовать 100% всех 4 ядер, если он многопоточный.

Важное примечание

Использование ЦП - это только один ресурс, который может ограничивать производительность процесса. Ввод / вывод - это другое, и он не учитывает нагрузку на процессор. Процесс, использующий определенное количество ЦП, не обязательно сможет использовать больше на более загруженной машине, поскольку они могут попасть в другие узкие места.

Какова лучшая средняя нагрузка

Это действительно зависит от того, что вы делаете и предпочитаете ли вы отзывчивость, или от того, насколько сильно ЦП работает как можно больше.

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

Для чего-то, что должно быть максимально отзывчивым (реагировать быстро), средняя нагрузка должна быть комфортным запасом, меньшим, чем число ядер, например, половина или треть, что допускает некоторые периодические колебания до того, как произойдут какие-либо замедления.

Для гостя виртуализации (например, KVM) чем ниже среднее значение нагрузки, тем лучше, потому что вы на самом деле делите процессор с другими гостями на том же хосте.

13
ответ дан 23 November 2017 в 05:19

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

Похожие вопросы: