Load average 42 при простаивающем процессоре
На сервере с 8 ядрами приложение отвечает с большими задержками. Вы смотрите top:
top - load average: 42.15, 39.80, 31.05
%Cpu(s): 2.7 us, 1.1 sy, 0.0 ni, 82.4 id, 13.6 wa, 0.2 hi
MiB Mem : 32000 total, 18400 free, 9200 used, 4400 buff/cache
Памяти хватает, процессор почти простаивает, но load average держится выше 40.
Как это объяснить?
- Показания недостоверны: при высокой нагрузке ядро не успевает обновлять счётчики `top`, нужно смотреть только `vmstat`
- Заканчиваются процессорные ядра: load average выше числа ядер всегда означает нехватку CPU
- Много процессов заблокировано в непрерываемом ожидании ввода-вывода — в Linux такие процессы тоже входят в load average, при этом CPU простаивает
- Утечка памяти в приложении: ядро активно свопится, операции подкачки учитываются как нагрузка, поэтому load average растёт при низком потреблении CPU и большом объёме free
