System reagiert nicht, aber keine CPU-Last

384
dangonfast

Einer meiner Server reagiert vollständig nicht:

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 ist schwer zu sagen, was los ist, da ich nicht wirklich viele Informationen erhalten kann (sehr unempfänglich), aber das sehe ich:

  • durchschnittliche Belastung sehr hoch
  • Ich sehe etwa 20% - 30% CPU-Last
  • Ich sehe keine hohe E / A-Auslastung
  • Ich kann nicht erkennen, welche Prozesse in der Ausführungswarteschlange sind

Wie kann ein hoher Lastdurchschnitt und eine geringe CPU-Auslastung erreicht werden?

1

2 Antworten auf die Frage

4
Johan Myréen

Der Speicher ist erschöpft und das System geht über den Haufen. Es ist nicht genügend freier Speicherplatz vorhanden, um alle erforderlichen Prozessseiten im Speicher zu halten. Das Betriebssystem muss also einige Seiten freigeben, um die erforderlichen Seiten von der Festplatte laden zu können. Da Sie keinen Swap haben, können die freizugebenden Seiten nicht in den Swap-Space geschrieben werden. Die einzige Alternative ist, schreibgeschützte Codeseiten zu verwerfen oder den Puffercache zu verkleinern. Wenn die Ausführung zu einer Seite übergeht, die verworfen wurde, muss sie auf Kosten einer anderen Seite erneut in den RAM eingelesen werden. Irgendwann wird das Problem so schlimm, dass die meiste Zeit damit verbracht wird, auf das Laden von Seiten von der Festplatte zu warten, und sehr wenige CPU-Zyklen können für nützliche Arbeit genutzt werden.

Fügen Sie einen Swap hinzu, obwohl dies je nach Lastmuster Ihrer Prozesse hilfreich sein kann.

0
nKn

Wahrscheinlich ein Mountpoint-Problem. Wenn das System versucht, einen Mountpoint zu mounten, der zu diesem Zeitpunkt nicht verfügbar ist, wird die Systemlast erhöht. Es kann jedoch vorkommen, dass es keine CPU-Horten gibt.

Versuchen:

  1. Laufen mountund sehen, ob es einen Mountpoint gibt, der zu diesem Zeitpunkt nicht erreichbar ist.
  2. Überprüfen /etc/fstabauf alle zum Startzeitpunkt definierten Einhängepunkte, um zu sehen, ob einer von ihnen zu diesem Zeitpunkt nicht erreicht werden kann.