O sistema não responde, mas sem carga de CPU

O sistema não responde, mas sem carga de CPU

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:

  1. Executando mounte veja se há algum ponto de montagem que não pode ser alcançado naquele momento.
  2. Verificando /etc/fstabtodos os pontos de montagem definidos no horário de início e verificando se algum deles não pode ser alcançado naquele momento.

informação relacionada