
Um dos meus servidores não responde completamente:
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
É difícil dizer o que está acontecendo, já que não consigo muita informação (muito sem resposta), mas é isso que vejo:
- média de carga muito alta
- Vejo cerca de 20% a 30% de carga da CPU
- Não vejo alta utilização de E/S/rede
- Não consigo identificar quais processos estão na fila de execução
Como é possível ter uma média de carga alta e uma utilização baixa da CPU?
Responder1
Você ficou sem memória e o sistema está se debatendo. Não há memória livre suficiente para manter todas as páginas de processo necessárias na memória, portanto o sistema operacional deve liberar algumas páginas para poder carregar as páginas necessárias do disco. Como você não tem troca, as páginas a serem liberadas não podem ser gravadas no espaço de troca; portanto, a única alternativa é descartar as páginas de código somente leitura ou reduzir o cache do buffer. Quando a execução avança para uma página que foi descartada, ela deve ser lida novamente na RAM, em detrimento de alguma outra página. Em algum momento, o problema fica tão grave que a maior parte do tempo é gasto aguardando o carregamento das páginas do disco e poucos ciclos de CPU podem ser usados para trabalhos úteis.
Tente adicionar alguma troca, embora isso possa ou não ajudar, dependendo dos padrões de carga dos seus processos.
Responder2
Provavelmente um problema de ponto de montagem. Quando o sistema está tentando montar um ponto de montagem que não está disponível naquele momento, ele começará a aumentar a carga do sistema, embora você possa não perceber que há algum processo acumulando CPU.
Tentar:
- Executando
mount
e veja se há algum ponto de montagem que não pode ser alcançado naquele momento. - Verificando
/etc/fstab
todos os pontos de montagem definidos no horário de início e verificando se algum deles não pode ser alcançado naquele momento.