
Один из моих серверов полностью не отвечает:
top - 06:16:53 up 2:14, 1 user, load average: 30.95, 29.96, 22.92
Tasks: 168 total, 2 running, 166 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 12.6 sy, 0.0 ni, 0.0 id, 86.4 wa, 0.0 hi, 0.0 si, 1.1 st
KiB Mem : 1014524 total, 61368 free, 877028 used, 76128 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 4196 avail Mem
scroll coordinates: y = 1/168 (tasks), x = 1/12 (fields)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30 root 20 0 0 0 0 S 11.1 0.0 4:04.70 kswapd0
1116 root 20 0 791548 44900 0 S 0.4 4.4 0:14.91 dockerd
1 root 20 0 37752 2664 864 D 0.2 0.3 0:06.00 systemd
Трудно сказать, что происходит, так как я не могу получить много информации (очень неотзывчивый), но вот что я вижу:
- средняя нагрузка очень высокая
- Я вижу загрузку ЦП около 20% - 30%
- Я не вижу высокой загрузки ввода-вывода/сети
- Я не могу определить, какие процессы находятся в очереди на выполнение.
Как возможно иметь высокую среднюю нагрузку и низкую загрузку ЦП?
решение1
У вас закончилась память, и система тормозит. Недостаточно свободной памяти для хранения всех необходимых страниц процесса в памяти, поэтому ОС должна освободить некоторые страницы, чтобы иметь возможность загрузить необходимые страницы с диска. Поскольку у вас нет подкачки, освобождаемые страницы не могут быть записаны в пространство подкачки, поэтому единственной альтернативой является либо отбрасывание страниц кода только для чтения, либо сжатие буферного кэша. Когда выполнение переходит к странице, которая была отброшена, ее необходимо снова считать в ОЗУ за счет какой-то другой страницы. В какой-то момент проблема становится настолько серьезной, что большая часть времени тратится на ожидание загрузки страниц с диска, и очень мало циклов ЦП может быть использовано для полезной работы.
Попробуйте добавить немного подкачки, хотя это может помочь или нет, в зависимости от характера нагрузки ваших процессов.
решение2
Вероятно, проблема с точкой монтирования. Когда система пытается смонтировать точку монтирования, которая в данный момент недоступна, она начнет увеличивать нагрузку на систему, хотя вы можете и не заметить, что какой-то процесс нагружает ЦП.
Пытаться:
- Запустите
mount
и посмотрите, есть ли какая-то точка монтирования, которая не может быть достигнута в данный момент. - Проверяем
/etc/fstab
все точки монтирования, определенные во время запуска, и смотрим, не является ли какая-либо из них недоступной в данный момент.