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

Что значит 5.00, 2.00, 1.00 в Load Average?

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

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

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

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

Понимание Load Average в Unix-подобных системах

Load Average (средняя загрузка системы) — это один из ключевых метрик производительности, отображающий количество задач в состоянии выполнения или ожидания ресурсов процессора. Значения, которые вы указали (5.00, 2.00, 1.00), представляют собой три числа, усреднённых за разные интервалы времени: за 1 минуту, за 5 минут и за 15 минут соответственно.

Что именно означают эти числа?

Значения Load Average отражают среднее количество активных задач (процессов или потоков) в системе, которые либо выполняются на CPU, либо ожидают в очереди на выполнение (например, в состоянии runnable или uninterruptible sleep, как при ожидании завершения операций ввода-вывода, например, дисковых).

# Пример вывода команды uptime или top, показывающего Load Average
$ uptime
 15:30:00 up 10 days,  1:23,  3 users,  load average: 5.00, 2.00, 1.00

В этом примере:

  • 5.00 — среднее количество активных задач за последнюю 1 минуту.
  • 2.00 — среднее количество активных задач за последние 5 минут.
  • 1.00 — среднее количество активных задач за последние 15 минут.

Интерпретация значений относительно количества CPU

Чтобы понять, является ли загрузка высокой, нужно сравнить значение Load Average с количеством доступных CPU-ядер в системе. Это критически важный момент.

# Команда для определения количества CPU-ядер в системе
$ nproc
8

В системе с 8 CPU-ядрами:

  • Load Average 5.00: означает, что в среднем за последнюю минуту было 5 активных задач на 8 ядер. Это указывает на умеренную загрузку, так как система имела свободные ресурсы CPU.
  • Load Average 2.00 и 1.00: показывают ещё более низкую загрузку за последние 5 и 15 минут, что говорит о спаде нагрузки.

Общее правило интерпретации:

  • Load Average < количество CPU-ядер: система не перегружена, есть свободные ресурсы процессора.
  • Load Average ≈ количество CPU-ядер: система используется оптимально, все ядра активно работают.
  • Load Average > количество CPU-ядер: система перегружена, задачи начинают ожидать в очереди, что может приводить к увеличению времени отклика.

Что такое "активные задачи"?

В Load Average учитываются задачи в следующих состояниях:

  1. Запущенные (running) — в данный момент выполняются на CPU.
  2. Ожидающие выполнения (runnable) — готовы к выполнению, но ожидают свободного CPU.
  3. В состоянии непрерываемого сна (uninterruptible sleep, обычно обозначается как D в top) — задачи, заблокированные в ожидании завершения операций ввода-вывода (чаще всего дисковой подсистемы). Это очень важный аспект, потому что высокий Load Average при низком использовании CPU часто указывает именно на проблемы с I/O.

Практический пример анализа

Допустим, мониторинг сервера с 4 ядрами показывает load average: 8.23, 6.01, 4.67.

$ top
top - 15:35:00 up 30 days,  2:10,  1 user,  load average: 8.23, 6.01, 4.67
%Cpu(s): 15.3 us,  8.2 sy,  0.0 ni, 74.5 id,  1.5 wa,  0.0 hi,  0.5 si,  0.0 st

Анализ:

  1. 8.23 за 1 минуту — это больше 4-х ядер, система перегружена.
  2. Тренд (8.23 > 6.01 > 4.67) — загрузка резко выросла в последнюю минуту.
  3. Анализ строки %Cpu:
    *   `74.5 id` — 74.5% времени процессор простаивал. Это противоречит высокому Load Average.
    *   `1.5 wa` — 1.5% времени процессор ждал завершения I/O-операций. Значение не критическое, но есть.
  1. Вывод: Скорее всего, у нас много процессов в состоянии uninterruptible sleep (ожидание диска или сети). Нужно искать узкое место в подсистеме ввода-вывода или блокировки в работе приложения, а не недостаток CPU.

DevOps-перспектива: почему это важно?

  • Масштабирование и планирование мощностей: Мониторинг трендов Load Average (особенно 5- и 15-минутных значений) помогает прогнозировать необходимость в горизонтальном или вертикальном масштабировании кластеров.
  • Диагностика проблем производительности: Резкий рост 1-минутного значения — индикатор инцидента. Соотношение трех значений помогает понять: это всплеск (8.00, 3.00, 2.00) или долгосрочная проблема (5.00, 5.50, 5.80).
  • Настройка оркестраторов: Такие системы, как Kubernetes, используют аналогичные метрики для принятия решений о распределении подов между нодами и автоскейлинге.

Ключевые выводы

  • Load Average — это не процент загрузки CPU, а усредненное количество активных задач.
  • Для оценки "нормальности" значения его всегда нужно сравнивать с количеством CPU-ядер.
  • Высокий Load Average при низком использовании CPU — классический признак проблем с вводом-выводом (диск, сеть) или блокировок в приложении.
  • Три числа дают понимание тренда: краткосрочный всплеск или долгосрочная нагрузка.
  • Для современного DevOps-инженера анализ Load Average в связке с другими метриками (CPU, Memory, Disk I/O, Network) является базовым навыком диагностики состояния инфраструктуры и приложений.