Что означают три числа в Load Average (например, 5.00, 2.00, 1.00)?

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

Ответ

Load Average — это ключевая метрика для понимания нагрузки на систему. Три числа показывают среднее количество процессов, находящихся в состоянии R (runnable) или D (uninterruptible sleep), за последние 1, 5 и 15 минут соответственно.

  • 5.00 — средняя нагрузка за последние 5 минут.
  • 2.00 — средняя нагрузка за последнюю 1 минуту.
  • 1.00 — средняя нагрузка за последние 15 минут.

Как я интерпретирую эти значения:

  1. Сравнение с количеством CPU-ядер: Это самый важный шаг. Узнаю количество ядер командой nproc или lscpu. Если Load Average стабильно превышает количество ядер, система перегружена, процессы ждут своей очереди.
  2. Анализ тренда: Соотношение трех чисел показывает динамику. Например, 5.00, 2.00, 1.00 означает, что нагрузка резко выросла в последние 5 минут (была 1.0, стала 5.0). Напротив, 1.00, 2.00, 5.00 говорит о том, что пиковая нагрузка была 15 минут назад и сейчас система восстанавливается.
  3. Диагностика: Высокий Load Average при низком использовании CPU (top, mpstat) часто указывает на проблемы с I/O (процессы в состоянии D). В таком случае смотрю iostat или iotop.

Пример для 4-ядерного сервера:

  • Load Average: 4.00, 3.80, 3.50 — система стабильно загружена на 100%.
  • Load Average: 8.00, 4.00, 2.00 — в последние 5 минут возникла серьезная перегрузка, вдвое превышающая возможности CPU.