Am Tue den 20 Feb 2001 um 03:18:10PM +0100 schrieb Reiner Klaproth:
Hallo!
An meinem Terminalserver bleiben gelegentlich alle Prozesse hängen. Bei der Suche nach dem Auslöser habe ich mein System mal genauer unter die Lupe genommen:
Zum Zeitpunkt des Hängenbleibens steigen die Load-Werte in kürzester Zeit ohne jede Vorwarnung in astronomische Höhen. Heute war es # cat /proc/loadavg 114.32 116.51 113.89 17/196 9854
Zu diesem Zeitpunkt kam in /var/log/messages: kernel: cape ... kernel: VM: do_try_to_free_pages failed for <prozess>
Genau zu diesem Thema gab es schon mal einen langen Thread:
Der Fehler liegt IMHO im Verhalten des Linux kernels, der bis über die Grenze dessen, was sinnvoll ist, Programmen Speicher vergibt. Erreicht das System dann die Grenze, wo wirklich der gesamte physische und virtuelle Speicher voll ist, kommt es zu genau dem Phänomen, welches du hier schilderst. Meine damalige Mail: http://mailman.schlittermann.de/pipermail/lug-dd/2000-June/003360.html
Eine gute Erklärung des Sachverhaltes von Reinhard:
http://mailman.schlittermann.de/pipermail/lug-dd/2000-June/003374.html
Ich hatte schon die Zahl zu öffnender Dateien mit echo nach /proc/sys/fs/ inode-max bzw. file-max hochgedreht.
Wer kann Angaben machen, wie ich diesen Zustand vermeiden kann?
Die Lösung wäre z.B. wie damals von Thorsten Werner vorgeschlagen, per default ein ulimit zu setzen. Du könntest das für jeden User machen. Es gibt allerdings keine wirklich gute Lösung. Mit einem 2.4.1 habe ich das noch nicht getestet, sollte aber besser funktionieren.
andre