Ответ
Load Average 100 — это критический показатель, означающий, что в среднем за последние 1, 5 и 15 минут в системе находилось 100 процессов, готовых к выполнению (в состояниях R) или ожидающих ресурсов (чаще всего I/O, в состоянии D). Это свидетельствует о глубокой перегрузке системы.
Интерпретация в зависимости от CPU:
- 1 ядро: Нагрузка в 100 раз превышает capacity. Система практически не отвечает.
- 8 ядер: ~12.5 процессов на ядро. Серьезная перегрузка.
- 32 ядра: ~3.1 процесса на ядро. Все еще высокая нагрузка, требующая внимания.
Типичные причины в продакшене:
- "Гонка" или бесконечные циклы в коде приложения.
- Катастрофические проблемы с диском: отказ RAID-массива, заполнение inodes, 100% utilization диска.
- Массовый отказ сетевых подключений, приводящий к таймаутам и накоплению процессов в состоянии ожидания.
- Некорректная конфигурация веб-сервера/балансировщика, приводящая к 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, оптимизировать запросы к БД, проверить дисковую подсистему и рассмотреть горизонтальное масштабирование.