← Назад к вопросам

Что показывает Load Average

1.8 Middle🔥 182 комментариев
#Linux и администрирование#Мониторинг и логирование

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое Load Average?

Load Average (средняя нагрузка) — это ключевой метрика в Unix-подобных системах (Linux, macOS, BSD), которая показывает среднее количество процессов, находящихся в состоянии готовности к выполнению (runnable) или ожидания завершения ввода/вывода (uninterruptible sleep), за определённые промежутки времени. Обычно отображаются три значения: за 1, 5 и 15 минут.

Интерпретация значений

Значения Load Average напрямую не выражаются в процентах и их интерпретация зависит от количества процессорных ядер (cores) в системе.

  • Load Average = 0.0: Система полностью простаивает.
  • Load Average < 1.0 на одно ядро: Система справляется с нагрузкой, процессы не ждут своей очереди на выполнение. Например, для 4-ядерного CPU значение 3.2 будет означать хорошую загрузку.
  • Load Average ≈ 1.0 на одно ядро: Система загружена ровно настолько, чтобы обрабатывать поступающие задачи без простоя. Для 4 ядер это значение 4.0.
  • Load Average > 1.0 на одно ядро: Возникает очередь из процессов, ожидающих CPU. Это не всегда критично, но требует внимания. Для 4 ядер значение 8.0 означает, что в среднем 8 процессов конкурируют за 4 ядра.
  • Load Average значительно превышает количество ядер (например, в 2-3 раза и более): Система перегружена, наблюдаются заметные задержки в отклике. Это сигнал для глубокого анализа.

Как посмотреть Load Average?

Есть несколько стандартных команд:

# Самая распространённая команда
uptime
# Пример вывода: 15:32:45 up 30 days,  2:15,  1 user,  load average: 1.25, 0.98, 0.75

# Команда top (значения в первой строке)
top

# Чтение из виртуальной файловой системы /proc
cat /proc/loadavg
# Пример вывода: 1.25 0.98 0.75 2/1547 45892
# Первые три числа — load average за 1, 5, 15 мин.
# Четвёртое число: 2 — кол-во выполняющихся процессов, 1547 — общее кол-во процессов.

Детальное понимание: какие процессы учитываются?

Load Average учитывает процессы в двух состояниях:

  1. R (Running/Runnable) — процессы, готовые к выполнению и ожидающие своей очереди на CPU.
  2. D (Uninterruptible Sleep) — процессы, заблокированные на операциях ввода/вывода (чаще всего дискового), которые не могут быть прерваны. Это важный нюанс! Высокий Load Average при низкой загрузке CPU часто указывает на проблемы с диском (медленный I/O) или сетью.

Практический анализ для DevOps

Для инженера анализ Load Average — это первый шаг в диагностике проблем производительности.

  1. Сравнение с количеством CPU ядер. Узнать количество ядер можно так:

    nproc
    # или
    grep -c ^processor /proc/cpuinfo
    
  2. Соотнесение с другими метриками. Сам по себе Load Average малоинформативен. Его нужно анализировать в связке:

    *   **Утилизация CPU (`mpstat`, `top`)**: Если CPU usage низкий, а Load Average высокий — вероятна проблема с I/O (ожидание диска).
    *   **Утилизация памяти (`free`, `vmstat`)**: Swapping (активное использование swap) может приводить к резкому росту Load из-за дисковых операций подкачки.
    *   **Дисковый I/O (`iostat`, `iotop`)**: Прямое подтверждение гипотезы о перегруженности дисков.
    *   **Сетевой трафик (`iftop`, `nethogs`)**: Для сетевых сервисов.

  1. Тренд по трём значениям. Разница между значениями за 1, 5 и 15 минут показывает динамику:
    *   `1.75, 1.20, 0.80` — нагрузка **растёт** (недавний всплеск).
    *   `0.60, 1.10, 1.30` — нагрузка **падает** (пик позади).
    *   `2.50, 2.55, 2.52` — нагрузка **стабильно высокая**.

Пример сценария диагностики

Представьте сервер с 8 ядрами и Load Average = 12.50.

  • Шаг 1: Сравниваем: 12.50 / 8 = 1.56. Нагрузка выше нормы, есть очередь.
  • Шаг 2: Смотрим vmstat 2:
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    10  2  50000  10000  20000 300000    5   10  1500   800 2000 5000 15  5 40 40  0
    
    *   **`r` (run queue) = 10** — подтверждает высокий Load.
    *   **`b` (processes in uninterruptible sleep) = 2** — есть процессы, ждущие I/O.
    *   **`wa` (CPU wait for I/O) = 40%** — очень высокий показатель! CPU простаивает, ожидая диск.
    *   **Вывод:** Проблема, скорее всего, в медленном дисковом вводе-выводе. Следующий шаг — анализ дисков с помощью `iostat -dx 2`.

Заключение

Для DevOps-инженера Load Average — это не просто цифры, а отправная точка для расследования. Критически важно:

  • Всегда интерпретировать его относительно количества CPU ядер.
  • Понимать, что высокий Load при низком CPU — классический признак проблем с I/O.
  • Анализировать тренд по трём временным интервалам.
  • Использовать Load Average в мониторинге (например, в Grafana) совместно с метриками CPU, памяти и диска для построения полной картины здоровья системы.
Что показывает Load Average | PrepBro