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

Единица Load Average — это хорошая нагрузка или перегруженная система

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

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

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

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

Единица Load Average: Индикатор нагрузки системы

Единица Load Average — это не абсолютный показатель «хорошей» или «плохой» нагрузки, а относительная метрика, смысл которой зависит от контекста, в частности, от количества CPU-ядер в системе. В системах Linux и Unix load average отображает среднее количество процессов, находящихся в состоянии готовности к выполнению (runnable) или ожидающих завершения операций ввода-вывода (uninterruptible sleep), за три периода: 1, 5 и 15 минут.

Ключевое правило интерпретации

Базовое эмпирическое правило: значение load average сравнивается с количеством доступных CPU-ядер (не потоков Hyper-Threading). Если значение близко или превышает число ядер — система испытывает нагрузку, процессы начинают конкурировать за ресурсы.

# Пример проверки load average и количества ядер
$ uptime
 10:30:00 up 5 days,  1:23,  2 users,  load average: 2.50, 1.80, 1.20
$ grep -c ^processor /proc/cpuinfo
4

В этом примере система имеет 4 CPU-ядра. Значение load average 2.50 за 1 минуту ниже 4, что указывает на нормальную нагрузку — система справляется, резерв есть.

Что означает единица (1.00)?

Значение 1.00 следует трактовать, опираясь на архитектуру системы:

  • На однопроцессорной (одноядерной) системе: 1.00 означает, что в среднем один процесс постоянно требовал CPU, система полностью загружена, но не перегружена. Рост выше 1.00 — начало образования очереди.
  • На многопроцессорной системе (например, 8 ядер): 1.00 означает, что в среднем только одно ядро было загружено, а 7 ядер простаивали. Это показатель очень низкой нагрузки, система практически бездействует.

Вывод: Единица сама по себе не является индикатором перегруженности. Это точка отсчета, равная одному полностью занятому CPU-ядру.

Когда система считается перегруженной?

  • Длительное превышение load average над числом ядер (напр., на 4-ядерной системе значения 5.00, 6.00, 4.50). Это указывает на устойчивую очередь процессов.
  • Высокие значения в интервале 15 минут при снижении в 1-минутном интервале могут говорить о недавнем пике, с которым система справилась.
  • Рост значения при падении производительности (high load, low throughput) — классический признак проблем с I/O (диски, сеть). Процессы блокируются в состоянии D (uninterruptible sleep), увеличивая load, хотя CPU может быть не загружен.

Практический анализ нагрузки

Нельзя смотреть только на load average. Необходим комплексный анализ:

  1. Сравнить с числом ядер.
  2. Использовать утилиты для детализации:
    # Состояние CPU и процессов
    $ top
    $ htop
    # Статистика ввода-вывода
    $ iostat -x 2
    # Очереди дисков
    $ cat /proc/diskstats
    
  3. Анализировать тренд. Значения за 1, 5 и 15 минут показывают динамику:
    *   `4.50, 3.20, 2.10` — нагрузка **растет**.
    *   `1.10, 2.50, 3.00` — нагрузка **падает**.

Резюме для DevOps Engineer

  • Load Average = 1.00 — это нейтральный показатель. На многоядерной системе это низкая нагрузка, на одноядерной — полная загрузка.
  • Система перегружена, когда load average стабильно превышает количество физических CPU-ядер, что приводит к увеличению времени отклика.
  • Высокий load при низком использовании CPU — это «красный флаг», указывающий на проблемы с подсистемой I/O (диски/сеть).
  • Для эффективного мониторинга load average должен использоваться в связке с другими метриками: утилизация CPU, память, swap, I/O wait, сетевая статистика. В современных системах оркестрации (Kubernetes) и мониторинга (Prometheus, Grafana) эти метрики агрегируются и визуализируются совместно, что дает полную картину здоровья системы.
Единица Load Average — это хорошая нагрузка или перегруженная система | PrepBro