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

«Что означает, если Load Average равна 100?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Load Average 100 — это критический показатель, означающий, что в среднем за последние 1, 5 и 15 минут в системе находилось 100 процессов, готовых к выполнению (в состояниях R) или ожидающих ресурсов (чаще всего I/O, в состоянии D). Это свидетельствует о глубокой перегрузке системы.

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

  • 1 ядро: Нагрузка в 100 раз превышает capacity. Система практически не отвечает.
  • 8 ядер: ~12.5 процессов на ядро. Серьезная перегрузка.
  • 32 ядра: ~3.1 процесса на ядро. Все еще высокая нагрузка, требующая внимания.

Типичные причины в продакшене:

  1. "Гонка" или бесконечные циклы в коде приложения.
  2. Катастрофические проблемы с диском: отказ RAID-массива, заполнение inodes, 100% utilization диска.
  3. Массовый отказ сетевых подключений, приводящий к таймаутам и накоплению процессов в состоянии ожидания.
  4. Некорректная конфигурация веб-сервера/балансировщика, приводящая к fork bomb.

Алгоритм диагностики:

# 1. Быстро оценить общую картину (процессы, нагрузка, ожидание I/O)
top -c
# Ищем столбец 'D' (Uninterruptible Sleep).

# 2. Определить тип нагрузки: CPU или I/O.
vmstat 1 5
# Если `r` (run queue) высокий, а `us`+`sy` (CPU usage) низкий — проблема в I/O.

# 3. Найти источник проблем с диском.
iostat -x 1
# Критически высокие значения `await` (ms) и `%util` (близко к 100%).

# 4. Определить конкретные проблемные процессы.
pidstat -d 1  # Активность ввода-вывода по процессам.
iotop -o     # Показывает процессы, активно ведущие запись/чтение.

Действия: Немедленно нужно идентифицировать и остановить проблемные процессы (kill -9), возможно, временно остановить часть сервисов. После стабилизации — провести root cause analysis, оптимизировать запросы к БД, проверить дисковую подсистему и рассмотреть горизонтальное масштабирование.