Что означает параметр load average в выводе команды top?

«Что означает параметр load average в выводе команды top?» — вопрос из категории DevOps, который задают на 28% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Load average — это средняя нагрузка на систему, которая показывает количество процессов, готовых к выполнению (в состоянии R — Running или Runnable) или ожидающих ресурсов ввода-вывода (в состоянии D — Uninterruptible sleep), усреднённое за три периода: 1, 5 и 15 минут.

Как интерпретировать:

  • Формат: load average: 1.23, 0.86, 0.45 (за 1, 5 и 15 минут соответственно).
  • Ключевое правило: значение сравнивается с количеством доступных CPU-ядер. Нагрузка 1.00 на одноядерном процессоре означает 100% загрузку.
  • Пример для 4-ядерного сервера:
    • 0.5 — система простаивает.
    • 4.0 — процессор полностью загружен, но очереди нет.
    • 8.0 — система перегружена: в среднем 4 процесса выполняются и ещё 4 ждут своей очереди.

Практический анализ:

  • Растущая нагрузка от 1 мин к 15 мин (3.0, 2.0, 1.0) говорит о снижении нагрузки.
  • Высокий load average при низком %CPU может указывать на проблемы с диском (много процессов в состоянии D).
# Узнать количество ядер для корректной интерпретации
nproc
# или
grep -c ^processor /proc/cpuinfo