Странные значения в загрузке системы Linux

Я пытаюсь понять загрузку системы на одном сервере Linux:

$ uptime 15:01:45 до 52 дней, 19:48, 1 пользователь, средняя загрузка: 0,63, 1,76, 4,81

Загрузка всегда составляет 1 минуту <5 минут <15 минут.

Идентификатор дистрибьютора: RedHatEnterpriseServer Выпуск: 5.8

Я фиксировал время безотказной работы каждую секунду в течение примерно 30 минут и всегда сообщал, что 1-минутное среднее значение было ниже, чем 5 минут 15 минут. Насколько я понимаю, это невозможно. Кажется, что более высокие числа сообщаются с некоторой добавленной константой.

Как это возможно и что это означает?

4
задан 15 December 2015 в 16:20
1 ответ

Я думаю, вы могли неправильно понять, как работает "средняя загрузка". Во-первых, это не «загрузка» системы, а «средняя загрузка» системы - большая разница, поскольку все числа являются средними (то есть охватом нескольких записей и времени)! Также очень важно, чтобы вы знали количество процессоров в системе, так как это повлияет на то, как интерпретировать числа (обратите внимание на количество ядер в наши дни).

Также обратите внимание, вы не можете использовать эти числа как «Использование процессора» "как вы знаете это из окон и т. д. Они являются средними и основаны на времени ожидания процесса и использовании процессора.

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

(Обратите внимание, что я не делаю) не используйте> или <, поскольку я думаю, что это может ввести в заблуждение.)

  • В течение последней 1 минуты
  • В течение последних 5 минут
  • В течение последних 15 минут

Давайте проведем тест на моем маленьком двойном процессоре (core) system.

Я выполнил команду "stress -c 1", чтобы максимально использовать 1 процессор (ядро), и дал ему поработать 5,10,30 минут (время использования процессора могло быть меньше, поэтому небольшое отклонение в числа).

Так выглядели мои средние значения нагрузки.

 5 MIN - load average: 1,00, 0,71, 0,37
10 MIN - load average: 1,02, 0,94, 0,59
30 MIN - load average: 1,01, 1,03, 0,98

Итак, что означают числа? Учитывая, что это система с двумя процессорами (ядром), вы можете взять первое число 1,00, и это говорит нам, что система использовалась на 50%, поскольку мы знаем, что у нее есть два процессора, поэтому, если число было 2,00, тогда мы использовали система 100%, десятичные числа говорят вам о перегрузке ожидающих процессов.

  • За последнюю 1 минуту: компьютер был перегружен в среднем на 0% с одним полностью загруженным процессором. Также известен как нормальная загрузка процессора, когда система используется на 50%.

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

Всего за 3 минуты моя нагрузка уже кричит на меня! Теперь я не собираюсь позволять этому работать дольше, так как это небольшой маршрутизатор, чтобы легче тестировать нагрузки, поэтому он становится горячим :)

3 MIN - load average: 2,48, 0,99, 0,74

Теперь давайте возьмем среднее число за 1 минуту, равное 2,48. Что это говорит нам сейчас? Итак, мы используем 248% системы, мы знаем, что можем использовать два процессора (200%), поэтому система перегружена на 48%, что означает, что в среднем 0,48 процесса ожидают времени использования процессора, поскольку два процессора полностью заняты. Но если бы это была система с 4 процессорами (ядрами), то цифры были бы вполне нормальными, поскольку мы снова использовали систему только на 50%.

Я надеюсь, что все это имеет смысл, также могут быть небольшие различия между дистрибутивами в том, как их ядро интерпретирует среднюю нагрузку, но не так, как вы думаете. Это то, как ядро ​​смотрит, в каком состоянии находится процесс. Например, cpu_idle, cpu_waiting, io_waiting и так далее. Таким образом, NFS fs может заставить процесс ждать io и т. Д. Я не думаю, что RedHat делает что-то особенное.

РЕДАКТИРОВАТЬ: Если вы хотите посмотреть на использование ЦП в системе в целом, вы можете использовать команду «top». Вверху также показаны средние значения нагрузки.

1
ответ дан 3 December 2019 в 04:09

Теги

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