Насколько высока нагрузка на систему?

12

Каждый раз, когда я подключаюсь к своим серверам через SSH, он высвечивает мне немного информации о сервере. IP-адрес IE, использование подкачки, использование памяти и т. Д. Одна из других вещей, которые мне показывают, это загрузка системы. Сейчас большую часть времени системная загрузка составляет <0,10, но в других случаях я видел, что она увеличивается до 0,89 (обычно при загрузке).

Это поднимает вопрос, насколько высока нагрузка на систему? Например, можно ли подняться до 2,00 и даже до 100,00?

Охотник Долан
источник
Дробная часть указывает загрузку процессора, десятичная часть - число ожидающих процессов. Нечто подобное 100.89было бы более вероятным, чем100.00
Лекенштейн
возможный дубликат допустимой средней нагрузки
Caleb
@ Калеб, я не согласен, что это дубликат. Вполне возможно, что ОП намеревался задать что-то похожее, например: «Какова может быть нагрузка на систему (и при этом все еще работать приемлемо)?». Но, как сформулировано, это не тот же вопрос.
Циклоп
@Cyclops: Если ОП не намеревался задавать вопросы о приемлемых уровнях на серверах и задавал чисто теоретический вопрос о том, как работают системы * nix, разве это не было бы здесь неуместным и кандидатом для перехода на unix.SE?
Калеб

Ответы:

17

Это поднимает вопрос, насколько высока нагрузка на систему? Например, можно ли подняться до 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 <= n , где n - количество ядер в вашей системе.

larsks
источник
1
Да, ожидание ввода-вывода - это простой способ создать большую нагрузку: смонтировать общий ресурс nfs, повернуть сервер nfs, запустить 10.000 процессов, которые пытаются что-то коснуться на общем ресурсе nfs: boom, загрузка 10.000
Jens Тиммерман
5

Я видел живые системы, поражающие тысячи. Load Average - относительная мера, основанная на ожидании процессов того, насколько велика конкуренция за то, чтобы привлечь внимание ядер и получить некоторое время на процессоре. Если машина завалена рабочими местами или поломкой, это может занять много времени.

Какой уровень допустим, зависит от компьютера, количества ядер, типа используемого планировщика заданий ядра и ожидаемых заданий. У меня есть несколько машин, которые вполне довольны диапазоном ~ 10, но застряли, если они достигли ~ 40-50. Другие становятся заметно отстающими в 2 и будут непригодными в 10.

Нередко загружается высокая нагрузка во время загрузки, так как много чего делается одновременно, и машина заводится. Я бы посчитал ~ 1 вполне нормальной нагрузкой для загрузки во время загрузки настольного Linux, а затем установил ~ 0,1, ничего не делая.

Калеб
источник
3
Незначительная коррекция: Load Average не является мерой времени. Это среднее число ожидающих процессов. Невозможно определить разницу между 1) одним процессом, который загружает процессор, а другим - тем, кто его не получает, и 2) двумя процессами, которые постоянно меняются. Они оба будут иметь нагрузку 1,0.
Plutor
1
Я видел 1500+ на серьёзно fubared linux box. Затем он умер.
Том О'Коннор
3

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

Три различных состояния процессов, учитываемых для средней нагрузки: (1) процессы, работающие на ЦП, (2) процессы, ожидающие времени ЦП, и (3) процессы в непрерывном спящем режиме. Последняя категория, хотя и не генерирует нагрузку на процессор, может значительно увеличить среднюю загрузку системы.

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

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

wzzrd
источник
Я думаю, что это плохо только в том случае, если они связаны с процессором, что встречается редко. Большинство больших процессов связаны с IO или с RAM.
Петер - Восстановить Монику
3

Сделайте простой процесс C, выполняющий бесконечные циклы в 10000 потоков. Дайте ему очень низкий приоритет (+20). Ваша нагрузка будет 10000, а ваша система будет работать. Он будет использовать только очень мало оперативной памяти (максимум несколько мегабайт).

Хотя это довольно необычная конфигурация, в реальных системах вы не найдете этого.

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

В повседневной жизни нагрузка свыше 30 означает в основном некоторую проблему.

Петер - Восстановить Монику
источник
2

Через несколько секунд после завершения процесса, который потреблял старый процессор с частотой 450 МГц:

введите описание изображения здесь

Петрус
источник
1

При повторном запуске процессов, которые блокируются немедленно, нагрузка будет равна числу процессов, которые вам удастся запустить. Предполагая, что у вас достаточно ОЗУ, чтобы система не менялась, система даже будет реагировать, так как нагрузка из-за блокирования процессов на самом деле не вредна.

Петр Григорьевич
источник
1

Я видел сервер, работающий с нагрузкой> 200.

Я бы стресс-тест и посмотреть.

Kedare
источник