Что означает Load Average 20 при использовании команды top?

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

Ответ

Load Average 20 (например, 20.00) показывает среднюю нагрузку на систему за последние 1, 5 и 15 минут. Это значение интерпретируется относительно количества доступных CPU-ядер.

  • На 1 ядре: 20 процессов в очереди на выполнение, что означает 20-кратную перегрузку.
  • На 4 ядрах: ~5 процессов на ядро, что указывает на значительную перегрузку.
  • На 16 ядрах: ~1.25 процесса на ядро — нагрузка близка к нормальной, но может указывать на пики.

Ключевой момент: Высокий Load Average при низком использовании CPU (%us, %sy) часто сигнализирует о проблемах с I/O (диск или сеть), когда процессы заблокированы в состоянии ожидания (D в top).

Диагностика:

# 1. Проверить состояние процессов и нагрузку
top -c
# Обратите внимание на процессы в состоянии 'D' (uninterruptible sleep).

# 2. Проверить дисковую подсистему
iostat -xz 1
# Высокие значения `await` и `%util` указывают на проблемы с диском.

# 3. Комплексный мониторинг
dstat -tcmnd 1

Действия: Если количество ядер меньше 20, необходимо срочно найти и устранить узкое место: проверить дисковые операции, сетевые запросы, наличие блокировок (deadlocks) или неоптимальные настройки СУБД.