Каждый раз, когда я вхожу на свои серверы через SSH, мне высвечивается небольшая информация о сервере. IP-адрес IE, использование подкачки, использование памяти и т. Д. Одна из других вещей, которые он мне вспоминает, - это загрузка системы. Сейчас в большинстве случаев число загрузки системы <0,10, но в других случаях я видел, что оно увеличивается до 0,89 (обычно во время загрузки).
Возникает вопрос: насколько высока нагрузка на систему? Например, возможно ли повышение до 2,00 даже до 100,00?
Возникает вопрос: насколько высока нагрузка на систему? Например, возможно ли повышение до 2,00 даже до 100,00?
Абсолютно. Глядя на uptime
страница руководства:
System load averages is the average number of processes that are either
in a runnable or uninterruptable state. A process in a runnable state
is either using the CPU or waiting to use the CPU. A process in unin‐
terruptable state is waiting for some I/O access, eg waiting for disk.
The averages are taken over the three time intervals. Load averages
are not normalized for the number of CPUs in a system, so a load aver‐
age of 1 means a single CPU system is loaded all the time while on a 4
CPU system it means it was idle 75% of the time.
Поэтому, если у вас есть много процессов, ожидающих запуска (или много процессов, заблокированных в ожидании ввода-вывода), у вас будет высокая средняя загрузка. Эта статья рассказывает об этом более подробно и содержит полезные ссылки на другие ресурсы.
В ненагруженной системе средняя нагрузка обычно находится в диапазоне 0 <= load_average <= п, где п количество ядер в вашей системе.
Я видел, как живые системы поражали тысячи. Средняя нагрузка - относительная мера, основанная на ожидающих процессах, насколько велика конкуренция за то, чтобы привлечь внимание ядра и получить некоторое время на CPU. Если машина завалена работой или выходит из строя, это может занять много времени.
Какой уровень приемлем, зависит от машины, количества ядер, типа используемого планировщика заданий ядра и заданий, которые вы ожидаете от него. У меня есть несколько машин, которые вполне довольны в диапазоне ~ 10, но терпят неудачу, если достигают ~ 40-50. Другие становятся заметно отстающими при 2 и будут непригодными для использования при 10.
Высокая нагрузка во время загрузки - не редкость, поскольку сразу выполняется множество операций, а машина заводится. Я бы счел ~ 1 вполне нормальной загрузкой для настольного Linux во время загрузки, а затем опустился до ~ 0,1, ничего не делая.
В Linux средние значения загрузки системы состоят из процессов в одном из трех различных состояний. В общем, можно сказать, что средняя загрузка - это количество процессов, ожидающих процессорного времени или потребляющих процессорное время. Три значения в обзоре средней нагрузки - это средняя нагрузка за последнюю минуту, последние 5 минут и последние 15 минут.
Три различных состояния процессов, учитываемых при средней загрузке: (1) процессы, выполняющиеся на ЦП, (2) процессы, ожидающие времени ЦП, и (3) процессы, находящиеся в непрерывном спящем режиме. Последняя категория, хотя и не создает нагрузки на ЦП, может значительно увеличить среднюю загрузку системы.
Например, дюжина процессов, ожидающих чтения с диска, который очень занят или недоступен, сгенерирует среднюю нагрузку 12, поскольку процессы в непрерывном спящем режиме, но ваш ЦП может в это время полностью простаивать.
Итак, да, средняя загрузка может легко увеличиваться до двузначных цифр. Насколько это плохо, скорее зависит от вашего оборудования. Если у вас 16 ядер, иметь 16 процессов, ожидающих процессорного времени, не так уж и плохо. На одноядерной машине наличие трех процессов, ожидающих процессорного времени, может быть очень плохим.
Сделайте простой процесс C, запускающий бесконечные циклы в 10000 потоков. Дайте ему очень низкий приоритет (+20). Ваша нагрузка будет 10000, в то время как ваша система будет по-прежнему работать. Он будет использовать очень мало оперативной памяти (максимум несколько мегабайт).
Хотя это довольно необычная конфигурация, в реальных системах вы ее не найдете.
Под загрузкой системы понимается только среднее количество процессов, ожидающих временного интервала процессора, не меньше и не больше. Вот еще один ответ о правильный способ интерпретации загрузки системы.
В повседневном опыте нагрузка более 30+ означает в основном какие-то проблемы.
Через несколько секунд после убийства процесса, который ел старый процессор 450 МГц:
Когда вы многократно запускаете процессы, которые немедленно блокируются, нагрузка будет равна количеству процессов, которые вам удастся запустить. Предполагая, что у вас достаточно оперативной памяти, чтобы система не меняла местами, система даже останется отзывчивой, поскольку нагрузка из-за блокирующих процессов на самом деле не опасна.
Я видел сервер, работающий с нагрузкой> 200.
Я бы провел стресс-тест и посмотрел.