Что такое load average в Linux и как его правильно интерпретировать

7 минут чтения
Средний рейтинг статьи — 4.7

При администрировании серверов Linux одно из самых частых чисел, которое можно увидеть в top, htop или uptime, — это load average.
Эта метрика часто вызывает вопросы: что она вообще показывает и какие значения считать нормальными?
Разберёмся простыми словами.

1. Что такое load average

Load average (средняя нагрузка системы) — это показатель средней длины очереди процессов, которые либо:

  • выполняются прямо сейчас (в состоянии running),
  • либо ожидают доступа к CPU или диску (в состоянии uninterruptible sleep).

Другими словами, load average показывает, сколько задач одновременно хотят использовать ресурсы процессора.

2. Где посмотреть load average

Самые популярные команды:

uptime

или

cat /proc/loadavg

Вывод, например:

load average: 0.32, 0.47, 0.51

Эти три числа — это средняя нагрузка за:

  • 1 минуту
  • 5 минут
  • 15 минут

То есть load average: 0.32, 0.47, 0.51 означает, что за последнюю минуту в среднем 0.32 процесса ожидали CPU, за 5 минут — 0.47, за 15 — 0.51.

3. Как интерпретировать значения

Главное правило:
Сравнивайте load average с количеством ядер процессора.

Посмотреть число ядер можно командой:

nproc

Пример:

Если у вас 4 ядра, то:

  • load = 4.00 — система загружена на 100%
  • load < 4.00 — запас по ресурсам есть
  • load > 4.00 — ядрам не хватает времени, процессы начинают ждать

То есть:

  • load average = 1.00 на однопроцессорной машине — всё ок
  • load average = 4.00 на 4-ядерной — тоже ок
  • load average = 8.00 на 4-ядерной — перегрузка (процессы простаивают в очереди)

4. Почему load average может быть высоким

Высокое значение не всегда значит, что процессор "зашит".
На нагрузку влияют и другие факторы:

ПричинаОписание
CPU-bound процессыПрограммы, активно использующие процессор (компиляция, шифрование, вычисления).
I/O waitЗадержки из-за медленного диска или файловой системы — процессы ждут завершения операций чтения/записи.
Недостаток RAMКогда система начинает использовать swap — растёт задержка и load.
Блокировка ресурсовПроцессы ждут освобождения файлов, сокетов или блокировок БД.
Много фоновых задачCron, systemd-службы, резервные копии, индексация и т.п.

5. Как диагностировать причины

Несколько полезных команд для анализа:

Проверить текущие процессы:

top

или

htop

Посмотреть нагрузку по ядрам:

mpstat -P ALL 1

Проверить ожидания ввода-вывода (I/O wait):

iostat -xz 1

Проверить, что именно создаёт нагрузку на диск:

iotop

Проверить использование памяти и swap:

free -h

Посмотреть историю нагрузки:

sar -q 1 5

6. Примеры интерпретации

Пример 1:

load average: 0.25, 0.30, 0.28

На 4-ядерном сервере — идеальное состояние. Система работает в лёгком режиме.

Пример 2:

load average: 4.10, 3.90, 3.85

На 4 ядрах — почти полная загрузка. Всё ещё допустимо, если нет задержек.

Пример 3:

load average: 9.50, 8.80, 7.40

При 4 ядрах — явный перегруз. Нужно смотреть, кто “жрёт” CPU или ждёт диск (htop, iotop).

7. Что считать нормальным load average

Это зависит от задачи и типа сервера:

Тип сервераНормальный диапазон
Веб-сервер / API0.5 – 1.5 × количество ядер
База данных1.0 – 2.0 × количество ядер
Фоновая обработка / batchдо 3.0 × количество ядер, если нет просадки по времени отклика

Главное — наблюдать тренд. Если load average постоянно растёт, значит, ресурсы близки к пределу и стоит масштабироваться.

8. Вывод

Load average — это не просто “нагрузка на процессор”, а показатель того, сколько процессов одновременно борются за системные ресурсы.
Чтобы правильно его интерпретировать:

  1. Всегда учитывайте количество CPU-ядер.
  2. Смотрите, что именно ждут процессы — CPU, диск, память.
  3. Анализируйте динамику (1-, 5- и 15-минутные интервалы).

Сама по себе высокая цифра — не приговор. Главное — понять, чего именно не хватает системе и устранить узкое место.

7 минут чтения
Средний рейтинг статьи — 4.7

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний