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

Что означает, если Load Average равна 100

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

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

🐱
claude-haiku-4.5PrepBro AI21 мар. 2026 г.(ред.)

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

# Load Average = 100: Анализ и интерпретация

Что такое Load Average

Load Average — это среднее количество процессов, которые находятся в очереди на выполнение CPU или ожидают ввода-вывода за определённый период времени. Это ключевая метрика для оценки нагрузки системы.

Три значения Load Average

В Linux uptime команда показывает три значения:

$ uptime
12:45:23 up 10 days, 2:30, 3 users, load average: 2.50, 3.45, 5.67

Три числа означают:

  1. 2.50 — средняя нагрузка за последние 1 минуту
  2. 3.45 — средняя нагрузка за последние 5 минут
  3. 5.67 — средняя нагрузка за последние 15 минут

Интерпретация Load Average = 100

Контекст имеет значение

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

# Проверка количества ядер
$ nproc
16

# Или через lscpu
$ lscpu | grep "CPU(s)"
CPU(s): 16

На 16-ядерной системе:

  • Load Average = 100 означает 6.25x перегрузку (100/16 = 6.25)
  • Это ОЧЕНЬ критично — система перегружена в 6+ раз

На 256-ядерной системе (сервер высокой мощности):

  • Load Average = 100 означает недогрузку (100/256 = 0.39)
  • Система спокойна, есть запас мощности

Идеальный Load Average

ideal_load = количество_ядер_CPU

Например, на 8-ядерной системе:

  • Load Average = 8 → 100% утилизация, оптимально
  • Load Average = 4 → 50% утилизация, недогруженность
  • Load Average = 16 → 200% утилизация, перегрузка

Что означает Load Average = 100 на типичной системе

На многоядерной машине (8-16 ядер)

Load Average = 100 — это критическая перегрузка.

Признаки перегрузки:

  • Приложения работают медленно
  • Возрастает задержка (latency)
  • Диски могут быть сильно используемы
  • Пользователи жалуются на неотзывчивость

Возможные причины:

# 1. Проверка процессов, использующих CPU
$ top -n 1 | head -20
$ ps aux --sort=-%cpu | head -10

# 2. Проверка I/O wait
$ iostat -x 1 5
# Если %iowait высокий (>50%), проблема в диске, не в CPU

# 3. Проверка процессов в состоянии D (uninterruptible sleep)
$ ps aux | grep ' D '

# 4. Анализ через dstat
$ dstat -tcss --top-io --top-bio

На SSD-систем без I/O проблем

Если Load Average = 100 при низком I/O wait:

  • Это CPU-bound нагрузка
  • Процессы ждут процессорного времени
  • Нужно оптимизировать алгоритмы или масштабировать горизонтально

На системе с высоким I/O wait

Если Load Average = 100 и %iowait > 70%:

  • Проблема не в CPU, а в дисковой системе
  • Диск может быть перегружен (медленный HDD, неверные запросы)
  • Нужно оптимизировать базу данных или I/O операции

Практический пример диагностики

#!/bin/bash
# Скрипт для анализа перегрузки

NUM_CORES=$(nproc)
LOAD=$(cat /proc/loadavg | awk '{print $1}')
RATIO=$(echo "scale=2; $LOAD / $NUM_CORES" | bc)

echo "Ядер процессора: $NUM_CORES"
echo "Load Average (1 мин): $LOAD"
echo "Коэффициент нагрузки: $RATIO"

if (( $(echo "$RATIO > 2" | bc -l) )); then
    echo "КРИТИЧЕСКАЯ ПЕРЕГРУЗКА!"
    echo ""
    echo "Top CPU процессы:"
    ps aux --sort=-%cpu | head -5
    echo ""
    echo "I/O статистика:"
    iostat -x 1 2 | tail -20
fi

Действия при Load Average = 100

Срочные меры:

  1. Определить тип нагрузки (CPU vs I/O)
  2. Найти процессы-причину (top, ps aux)
  3. Остановить ненужные сервисы
  4. Перезагрузиться, если критично

Средесрочные меры:

  1. Оптимизировать медленные приложения
  2. Добавить кеширование (Redis, Memcached)
  3. Оптимизировать базу данных (индексы, query optimization)
  4. Масштабировать горизонтально (load balancer, шардинг)

Долгосрочные меры:

  1. Мониторинг (Prometheus, Grafana)
  2. Алертинг при Load Average > X
  3. Автоскейлинг в облаке
  4. Планирование мощности

Load Average vs CPU Utilization

Load Average показывает: сколько работы ждёт CPU Utilization показывает: как интенсивно используется процессор

# Высокая Load, низкая CPU утилизация = I/O проблема
# Высокая Load, высокая CPU утилизация = CPU перегруженность
# Низкая Load, высокая CPU утилизация = нормально (короткие bursts)

Важный момент

Load Average = 100 на многоядерной системе может быть нормой (если ~12 ядер), но на 4-ядерной — это чрезвычайная ситуация. Всегда смотри контекст и используй формулу:

STATUS = Load Average / CPU Cores

STATUS < 1.0 → нормально
STATUS 1.0-2.0 → приемлемо, но следить
STATUS > 2.0 → ПЕРЕГРУЗКА, требуется действие