Что такое Load Average в Linux

Ответ

Load Average (LA) в Linux — это три числовых значения, которые показывают среднюю нагрузку на систему за последние 1, 5 и 15 минут. Этот показатель отражает количество процессов, которые в данный момент выполняются на CPU, а также тех, что находятся в очереди на выполнение или в состоянии непрерываемого ожидания (uninterruptible sleep), как правило, ожидая завершения операции ввода-вывода (I/O).

Как посмотреть:

Команды в терминале:

# Наиболее распространенный способ
uptime
# 10:30:00 up 10 days,  2:15,  1 user,  load average: 0.15, 0.20, 0.25

# Прямое чтение из псевдо-файловой системы proc
cat /proc/loadavg
# 0.15 0.20 0.25 1/234 12345

Интерпретация значений:

Значения LA следует соотносить с количеством ядер (или потоков) CPU в системе.

  • LA < количества ядер: Система справляется с нагрузкой, есть свободные ресурсы.
  • LA ≈ количеству ядер: Система полностью утилизирована, но еще не перегружена.
  • LA > количества ядер: Система перегружена. Процессы стоят в очереди, ожидая доступа к CPU, что приводит к задержкам и снижению производительности.

Пример на Python:

import os

# os.getloadavg() возвращает кортеж с LA за 1, 5 и 15 минут
load1, load5, load15 = os.getloadavg()

print(f"Load Average (1/5/15 min): {load1:.2f}, {load5:.2f}, {load15:.2f}")

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