Что означает средняя нагрузка в Unix / Linux?

68

Если я бегу uptime, я получаю что-то вроде этого:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

Что означают эти цифры в конце? Страница man говорит мне, что это «средняя загрузка системы за последние 1, 5 и 15 минут». Но каков масштаб? 1,27 высоко? Низкий? Это зависит от моей системы?

Джон Фухи
источник
2
Интересно, как интерпретировать среднюю нагрузку на систему с многоядерным процессором?
Нагуль
3
Как общее практическое правило, вы должны разделить среднее значение нагрузки на количество процессоров для многоядерных систем. Таким образом, нагрузка 2,0 в двухъядерной системе примерно равна 1,0 в одноядерной системе. Это не совсем верно из-за таких вещей, как дисковый ввод-вывод и сетевая трафик, но нагрузка в любом случае является приблизительной оценкой.
Майк Купер
1
Я нашел этот блог действительно полезным: Понимание загрузки процессора Linux
atmaish

Ответы:

59

Средняя нагрузка - это показатель того, сколько процессов в среднем выполняется, одновременно требуя внимания процессора.

Как правило, если у вас один процесс, работающий на 100%, и он работает так вечно, вы можете ожидать, что все значения приблизятся к «1».

Как правило, это настолько эффективные вычисления, насколько это возможно, без потерь из-за переключения контекста.

Однако в современных многозадачных ОС требуется более чем одна вещь, требующая внимания к ЦП, поэтому при умеренной нагрузке от одного процесса среднее значение нагрузки должно колебаться между 0,8 и 2.

Если вы решите сделать что-то безумное, например собрать ядро make -j 60, несмотря на наличие только одного логического процессора, то средняя загрузка будет стремительно приближаться к 60, и ваш компьютер будет невероятно бесполезен для вас (смерть из-за переключения контекста).

Также следует отметить, что этот показатель не зависит от количества ядер / процессоров. Для двухядерной системы запуск одного процесса, который потребляет все ядро ​​(оставляя другой бездействующим), приводит к средней загрузке 1,0. Чтобы решить, насколько загружена система, вам нужно знать количество ядер и выполнить деление самостоятельно.

Кент Фредрик
источник
1
Таким образом, среднее значение нагрузки меньше 1 означает «Процессы обычно не должны ждать»? Могу ли я интерпретировать среднее значение нагрузки 2 как «Каждый процесс занимает примерно вдвое больше времени, чем в идеальных условиях»? (Я знаю, что есть также
проблемы с вводом
Да, это имеет смысл, игнорируя IO, которое есть;)
Кент Фредрик
@KentFredric "Как правило, это настолько эффективные вычисления, насколько вы можете получить, без потерь из-за переключения контекста." ... 1 процесс работает на 100% все время эффективен вообще? Конечно, я упускаю что-то фундаментальное здесь. Не могли бы вы объяснить, что вы имели в виду? Меня смущает, как можно охарактеризовать как один процесс, занимающий все ресурсы процессора, как эффективный?
Компьютерщик
2
Я знаю, что процесс, работающий на 100%, звучит не очень «эффективно», но если бы процесс произвольно ограничил себя использованием только 20%, это заняло бы в 5 раз больше времени. Таким образом, здесь эффективность означает «оптимальное использование ресурсов».
Кент Фредрик
1
Таким образом, для системы с n-ядром среднее значение нагрузки n означает, что каждое ядро ​​обрабатывает процесс 100% времени и, следовательно, является наиболее эффективным?
Joshreesjones
9

Man 5 proc:

/ proc / loadavg Первые три поля в этом файле являются средними значениями загрузки, указывающими количество заданий в очереди выполнения (состояние R) или ожидающих дисковый ввод-вывод (состояние D), среднее за 1, 5 и 15 минут. , Они совпадают со средними числами загрузки, заданными uptime (1) и другими программами.

fho
источник
3

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

Джон Т
источник
2
Эта ссылка датирована '03. Linux 2.6 вышел с тех пор. (Вы заметите, что они используют 2.0, ой.) Метрики, кажется, теперь несколько отличаются на практике от тех, которые указаны на этой странице.
Кент Фредрик
Вот один с конца '06, которая не сильно отличается от связанной статьи: linuxjournal.com/article/9001
Нагул
Ваша ссылка все еще работает, и их терминальный вывод с 2001 года 😂 Как здорово
MS Berends
2

Я цитирую ссылку на курс:

Средняя нагрузка - это среднее число нагрузки за определенный период времени. Он учитывает процессы, которые:

  • Активно работает на процессоре.
  • Считается работоспособным, но ожидает, пока ЦП не станет доступным.
  • Спящий режим: т. Е. Ожидание появления какого-либо ресурса (обычно ввода-вывода).

Далее я процитирую интерпретацию средней нагрузки :

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

Последняя часть информации - это средняя загрузка системы. Если предположить, что наша система является однопроцессорной, то 0,25 означает, что за последнюю минуту в среднем система использовалась на 25%. 0,12 в следующей позиции означает, что за последние 5 минут в среднем система использовалась на 12%; и 0,15 в конечном положении означает, что за последние 15 минут в среднем система использовалась на 15%. Если бы мы увидели значение 1,00 во второй позиции, это означало бы, что однопроцессорная система использовалась в среднем на 100% за последние 5 минут; Это хорошо, если мы хотим полностью использовать систему. Значение более 1,00 для системы с одним ЦП означает, что система была перегружена: процессорам требовалось больше процессов, чем было доступно ЦП.

Если бы у нас было более одного процессора, скажем, четырехпроцессорной системы, мы бы поделили средние значения нагрузки на количество процессоров. В этом случае, например, просмотр средней нагрузки за 1 минуту в 4,00 означает, что система в целом была использована на 100% (4,00 / 4) в течение последней минуты.

Краткосрочные увеличения обычно не являются проблемой. Высокий пик, который вы видите, скорее всего, всплеск активности, а не новый уровень. Например, при запуске запускается много процессов, а затем активность успокаивается. Если в средних значениях нагрузки за 5 и 15 минут наблюдается высокий пик, это может стать причиной для беспокойства.

Ely
источник
Было бы удобно добавить ссылку на вашу ссылку.
Пирз
Это сложно Это онлайн-курс от Linux Foundation по подготовке к экзамену LFCS.
Эли