Load average растёт от процессов, которым есть чем заняться прямо сейчас, — даже если процессор им не нужен.
uptime печатает время работы машины и три числа load average — средние за последние 1, 5 и 15 минут. Каждое число — сколько процессов в среднем было в одном из двух состояний:
- R — процесс работает на процессоре или ждёт очереди к нему. Это состояние ты видел в столбце STAT у
ps. - D — процесс ждёт, пока закончится операция с диском или файловой системой, и прервать это ожидание нельзя.
Load average сравнивают с числом процессоров из nproc. На одном процессоре load 1 значит, что процессор был занят всё время; 3 — что в среднем три процесса хотели работать или ждали диск. Когда load растят процессы в R, процессор занят и id в top около нуля. У тебя процессор свободен — значит, load average набирают процессы в D.
Три числа показывают направление. Первое больше последнего — нагрузка выросла за последние минуты; меньше — спадает. У тебя первое число больше 3, а последнее меньше 1: процессы застряли недавно. Среднее догоняет текущее состояние постепенно — примерно за минуту первое число проходит две трети пути. Поэтому оно растёт и спадает плавно, даже когда процессы появились или пропали разом.
На сервере с двумя процессорами uptime печатает load average: 0.40, 1.90, 2.10. Что происходит с нагрузкой?
-
Прямо сейчас ближе всего первое число — 0.40 на двух процессорах. Очередь была почти полной раньше: 2.10 — среднее за 15 минут.
-
Первое число — последняя минута, последнее — 15 минут. 0.40 за минуту меньше 2.10 за 15 минут: нагрузки стало меньше.
Первое число — среднее за минуту, последнее — за 15 минут. Первое меньше последнего: нагрузка была и спадает. Два процессора полностью заняты при load 2, так что и раньше очередь не переполнялась.
Главное в шаге
- Load average — среднее число процессов в состояниях R и D за 1, 5 и 15 минут.
-
Сравнивай его с
nproc: больше числа процессоров — процессам не хватает процессора или они ждут диск. - Первое число больше последнего — нагрузка растёт, меньше — спадает.