Что означает средняя нагрузка в Unix/Linux?
Если я бегу 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 высоко? Низкий? Это зависит от моей системы?
4 ответа
Средняя нагрузка - это показатель того, сколько процессов в среднем требует одновременной работы процессора.
Как правило, если у вас один процесс, работающий на 100%, и он работает так вечно, вы можете ожидать, что все значения приблизятся к "1".
Как правило, это настолько эффективные вычисления, насколько это возможно, без потерь из-за переключения контекста.
Однако в современных многозадачных ОС требуется более чем одна вещь, требующая внимания к процессору, поэтому при умеренной нагрузке от одного процесса среднее значение нагрузки должно колебаться между 0,8 и 2.
Если вы решили сделать что-то безумное, например, собрать ядро с make -j 60
Несмотря на наличие только одного логического процессора, средняя загрузка будет стремительно приближаться к 60, и ваш компьютер будет для вас невероятно бесполезным (смерть из-за переключения контекста).
Также следует отметить, что этот показатель не зависит от количества ядер / процессоров. Для двухядерной системы запуск одного процесса, который потребляет все ядро (оставляя другой бездействующим), приводит к средней загрузке 1,0. Чтобы решить, насколько загружена система, вам нужно знать количество ядер и выполнить деление самостоятельно.
Man 5 proc:
/ proc / loadavg Первые три поля в этом файле являются средними значениями загрузки, указывающими количество заданий в очереди выполнения (состояние R) или ожидающих дисковый ввод-вывод (состояние D), среднее за 1, 5 и 15 минут., Они совпадают со средними числами загрузки, заданными uptime(1) и другими программами.
Я цитирую ссылку на курс:
Средняя нагрузка - это среднее число нагрузки за определенный период времени. Он учитывает процессы, которые:
- Активно работает на процессоре.
- Считается работоспособным, но ожидает, пока ЦП не станет доступным.
- Спящий режим: т. Е. Ожидание доступности какого-либо ресурса (обычно ввода-вывода).
Далее я процитирую интерпретацию средней нагрузки:
Среднее значение загрузки отображается с использованием трех разных наборов чисел, как показано в следующем примере:
Последняя часть информации - это средняя загрузка системы. Если предположить, что наша система представляет собой систему с одним процессором, то 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 минут наблюдается высокий пик, это может стать причиной для беспокойства.
В целом он измеряет количество активных процессов в данный момент, но метрики, используемые для его вычисления, отличаются в некоторых системах. Единственная статья, которую я нашел, которая объясняет это довольно хорошо, это эта.