Ответ
Load average — это три числа, показывающие усредненную нагрузку на систему за последние 1, 5 и 15 минут. Это не просто среднее арифметическое, а экспоненциально затухающее скользящее среднее, которое придает больший вес недавним значениям.
Что учитывается в нагрузке? В расчет включаются процессы, находящиеся в состояниях:
- R (Running или Runnable): Процессы, использующие или ожидающие использования CPU.
- D (Uninterruptible Sleep): Процессы, заблокированные на операциях ввода-вывода (обычно дискового), которые не могут быть прерваны.
Интерпретация значений: Значение load average интерпретируется относительно количества доступных CPU-ядер.
- Load = 1.00 на одноядерной системе означает, что система была загружена на 100% в среднем за период.
- Load > 1.00 указывает на очередь процессов, ожидающих своей очереди на CPU или завершения I/O.
- Load < 1.00 означает, что в среднем были свободные ресурсы.
Пример: На сервере с 4 ядрами load average: 3.20, 2.10, 1.05 означает:
- За 1 минуту: средняя нагрузка ~3.2 процесса, что меньше 4 ядер — система справлялась, но была загружена.
- За 5 и 15 минут: нагрузка была еще ниже.
Как посмотреть:
# Команда uptime
$ uptime
16:48:21 up 10 days, 1:23, 1 user, load average: 0.15, 0.21, 0.19
# Чтение из /proc/loadavg
$ cat /proc/loadavg
0.15 0.21 0.19 1/450 28789
# Последние два числа: количество выполняемых процессов/общее количество процессов, последний использованный PID.
Высокий load при низком использовании CPU часто указывает на проблемы с I/O (диском или сетью).