El sistema no responde, pero no hay carga de CPU

El sistema no responde, pero no hay carga de CPU

Uno de mis servidores no responde en absoluto:

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          

Es difícil decir qué está pasando, ya que realmente no puedo obtener mucha información (no responde), pero esto es lo que veo:

  • carga promedio muy alta
  • Veo alrededor del 20% - 30% de carga de CPU
  • No veo una alta utilización de IO/red
  • No puedo identificar qué procesos están en la cola de ejecución

¿Cómo es posible tener un promedio de carga alto y una utilización de CPU baja?

Respuesta1

Se ha quedado sin memoria y el sistema está funcionando mal. No hay suficiente memoria libre para mantener todas las páginas de proceso necesarias en la memoria, por lo que el sistema operativo debe liberar algunas páginas para poder cargar las páginas necesarias desde el disco. Como no tiene intercambio, las páginas que se liberarán no se pueden escribir en el espacio de intercambio, por lo que la única alternativa es descartar las páginas de códigos de solo lectura o reducir el caché del búfer. Cuando la ejecución avanza a una página que fue descartada, se debe leer nuevamente en la RAM, a expensas de alguna otra página. En algún momento, el problema empeora tanto que la mayor parte del tiempo se pasa esperando que las páginas se carguen desde el disco y se pueden utilizar muy pocos ciclos de CPU para un trabajo útil.

Intente agregar algún intercambio, aunque eso puede ayudar o no, dependiendo de los patrones de carga de sus procesos.

Respuesta2

Probablemente un problema de punto de montaje. Cuando el sistema intenta montar un punto de montaje que no está disponible en ese momento, comenzará a aumentar la carga del sistema, aunque es posible que no experimente que haya algún proceso acumulando CPU.

Intentar:

  1. Ejecute mounty vea si hay algún punto de montaje al que no se puede llegar en ese momento.
  2. Comprobar /etc/fstabtodos los puntos de montaje definidos en el momento de inicio y ver si no se puede alcanzar alguno de ellos en ese momento.

información relacionada