1 votes

Le système ne répond pas, mais le CPU n'est pas sollicité.

L'un de mes serveurs ne répond plus du tout :

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          

Il est difficile de dire ce qui se passe, puisque je n'arrive pas à obtenir beaucoup d'informations (très peu réactif), mais voici ce que je vois :

  • charge moyenne très élevée
  • Je vois environ 20% - 30% de charge CPU
  • Je ne vois pas d'utilisation élevée des IO / du réseau.
  • Je ne peux pas identifier les processus qui sont dans la file d'attente d'exécution.

Comment est-il possible d'avoir une moyenne de charge élevée et une faible utilisation du CPU ?

4voto

Johan Myréen Points 485

Vous n'avez plus de mémoire et le système se bloque. Il n'y a pas assez de mémoire libre pour conserver toutes les pages de processus nécessaires en mémoire. Le système d'exploitation doit donc libérer certaines pages pour pouvoir charger les pages nécessaires à partir du disque. Comme il n'y a pas d'espace d'échange, les pages à libérer ne peuvent pas être écrites dans l'espace d'échange. La seule alternative est donc d'éliminer les pages de code en lecture seule ou de réduire le cache de la mémoire tampon. Lorsque l'exécution avance vers une page qui a été écartée, elle doit être lue à nouveau en RAM, au détriment d'une autre page. À un moment donné, le problème devient si grave que la plupart du temps est consacré à attendre que les pages soient chargées depuis le disque et que très peu de cycles CPU peuvent être utilisés pour des travaux utiles.

Essayez d'ajouter un peu de swap, bien que cela puisse être utile ou non, en fonction des schémas de charge de vos processus.

0voto

nKn Points 5401

Probablement un problème de point de montage. Lorsque le système essaie de monter un point de montage qui n'est pas disponible à ce moment-là, il commence à augmenter la charge du système, même si vous ne vous rendez pas compte qu'il y a un processus qui accapare le CPU.

Essayez :

  1. Running mount et voir s'il y a un point de montage qui ne peut pas être atteint à ce moment-là.
  2. Vérification de /etc/fstab pour tous les points de montage définis au moment du démarrage et voir si l'un d'entre eux ne peut être atteint à ce moment-là.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X