Ich habe getestet, wie eine Ubuntu 16.04-Maschine mit wenig Arbeitsspeicher umgeht und hatte mehrere angehaltene Jobs, die fast den gesamten Arbeitsspeicher des Servers verbrauchten. Als ich gestern Abend von der Arbeit kam, konnte ich noch normale Bash-Befehle ausführen. Am Morgen (ohne dass jemand etwas am Server gemacht hatte) gaben alle Befehle ( ,,, ps
usw. ) den folgenden Fehler aus:free
ls
-bash: fork: Cannot allocate memory
Ich konnte die Maschine schließlich ausführen jobs
und kill %1
wiederherstellen. Zum Glück hatte ich eine SSH-Sitzung offen gehalten, da weitere SSH-Verbindungen fehlschlugen (der Client zeigte nach der Authentifizierung einfach keine Eingabeaufforderung an).
Die Tatsache, dass normale Userland-Programme den gesamten Server so weit zum Absturz bringen können, dass, wenn keine SSH-Sitzung vorhanden wäre, ein Hard-Reboot erforderlich wäre, isthöchstbesorgniserregend! Ich hatte es so verstanden, dass Linux (oder eigentlich jedes Betriebssystem) Prozesse beenden sollte, um RAM freizugeben, bevor das gesamte System in einen derart unbrauchbaren Zustand gerät. Wie kann ich das erreichen?