hostprofi.ru
Подобрать хостинг
Термин·буква L

Load Average 1/5/15

краткое определение

Load average — средняя нагрузка на систему за 1, 5 и 15 минут, отображаемая командой uptime или top. Показывает среднее количество процессов в очереди выполнения (running + ожидающих CPU или I/O). Нормальное значение ≤ числу ядер процессора.

Load average (средняя нагрузка) — метрика Linux, отражающая среднее число задач в очереди планировщика ядра: выполняющихся (running) и ожидающих свободного ядра или завершения I/O (uninterruptible sleep). Отображается тремя числами: за 1, 5 и 15 минут. Команды для просмотра: uptime, top, cat /proc/loadavg.

Что означают три числа

Пример вывода uptime: load average: 3.21, 1.87, 0.95

  • 3.21 — среднее за последнюю минуту. Текущее состояние. Высокое значение — идёт пиковая нагрузка.
  • 1.87 — среднее за 5 минут. Краткосрочный тренд.
  • 0.95 — среднее за 15 минут. Долгосрочный тренд. Малое значение здесь при высоком значении за 1 минуту — нагрузка только что началась.

Интерпретация зависит от числа ядер CPU:

  • Load average = N ядер — 100% загрузка без очереди. Норма.
  • Load average > N ядер — есть задачи, ожидающие в очереди. Перегрузка.
  • Load average < N/2 ядер — сервер загружен менее 50% мощности.

Пример: сервер с 4 ядрами CPU, load average 2.0 — нагрузка 50%, норма. Load average 8.0 — перегрузка вдвое, 4 задачи ждут в очереди.

Нюанс Linux: D-состояние и I/O wait

В отличие от BSD/macOS, Linux включает в load average процессы в состоянии D (uninterruptible sleep) — ожидание завершения I/O-операции. Это принципиальный нюанс: высокий load average не всегда означает перегрузку CPU. Диагностика причины:

  • vmstat 1 — столбец r (running) vs b (blocked, ожидание I/O). Если b большое, проблема в дисках.
  • iostat -x 1 — загрузка дисков (%util). Близко к 100% — диск перегружен.
  • top — строка CPU: процент wa (iowait). Высокий iowait при низком CPU = дисковое узкое место.
  • ps aux --sort=-state | head — процессы в состоянии D.

Алгоритм вычисления

Linux вычисляет load average через EWMA (Exponentially Weighted Moving Average — экспоненциальное скользящее среднее) с коэффициентами затухания для периодов 1, 5 и 15 минут. Обновление происходит каждые 5 секунд. Формула: load = load * exp(-5/60) + n * (1 - exp(-5/60)), где n — текущее число задач в очереди. Добавление D-состояния в load average произошло в Linux 0.99.14 (1993) — решение, которое критикуют до сих пор, поскольку оно смешивает CPU-нагрузку с I/O-ожиданием.

История

Метрика load average появилась в ранних версиях UNIX в 1970-х. В Linux реализация через EWMA с тремя периодами стабилизировалась в начале 1990-х. В 2017 году Брендан Грег (Brendan Gregg) опубликовал детальный анализ Linux load average, показав, что метрика отличается от традиционной UNIX из-за D-состояния, — это вызвало широкую дискуссию в сообществе.

Мониторинг load average

Для VPS-сервера рекомендуемые пороги алертинга: warning при load average 1-minute > N*1.5, critical при > N*3 (N — число ядер vCPU). Через Prometheus node_exporter метрики: node_load1, node_load5, node_load15. Пример Prometheus-алерта:

alert: HighLoadAverage
expr: node_load1 > (count(node_cpu_seconds_total{mode="idle"}) * 2)
for: 5m
labels:
  severity: warning

Высокий load average при низком CPU usage и высоком iowait — признак I/O bottleneck: медленный HDD, перегруженный NFS или зависшая сетевая файловая система.

Инструменты диагностики нагрузки

Набор утилит для понимания причин высокого load average на сервере:

  • htop — интерактивный мониторинг процессов. Сортировка по CPU: F6 → CPU%.
  • iotop -a — дисковые операции по процессам. Показывает, кто активно пишет на диск.
  • perf top — профилировщик ядра. Показывает горячие функции CPU.
  • dstat 1 — комплексный мониторинг: CPU, RAM, диски, сеть в одном выводе.
  • atop — исторические данные с сохранением в файл. Позволяет просмотреть нагрузку за прошедший час.

Другие термины

Load Average 1/5/15 — что это, определение и как работает | Справочник — hostprofi.ru