Что такое load average в Linux и как его правильно интерпретировать
При администрировании серверов 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 56. Примеры интерпретации
Пример 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
Это зависит от задачи и типа сервера:
| Тип сервера | Нормальный диапазон |
|---|---|
| Веб-сервер / API | 0.5 – 1.5 × количество ядер |
| База данных | 1.0 – 2.0 × количество ядер |
| Фоновая обработка / batch | до 3.0 × количество ядер, если нет просадки по времени отклика |
Главное — наблюдать тренд. Если load average постоянно растёт, значит, ресурсы близки к пределу и стоит масштабироваться.
8. Вывод
Load average — это не просто “нагрузка на процессор”, а показатель того, сколько процессов одновременно борются за системные ресурсы.
Чтобы правильно его интерпретировать:
- Всегда учитывайте количество CPU-ядер.
- Смотрите, что именно ждут процессы — CPU, диск, память.
- Анализируйте динамику (1-, 5- и 15-минутные интервалы).
Сама по себе высокая цифра — не приговор. Главное — понять, чего именно не хватает системе и устранить узкое место.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний