FAQ:Arktur4/Toomanyopenfiles
Archiv: Dieser Artikel beschreibt nicht die Funktionalität des derzeit aktuellen delixs-Servers. Er beschreibt ältere Schulserver-Funktionen und dient dem Zweck der Archivierung. |
Fehlermeldung "Too many open files in system"
Frage:
irgendwie läuft sich mein Arktur mit der Zeit zu. Er lässt sich dann wenn überhaupt mit etwas Glück per Konsole noch neu starten. In einer E-Mail die root immer bekommt stand:
execl: couldn't exec `/bin/sh' execl: Too many open files in system
Antwort 1:
Dieser Einzeiler zeigt in der ersten Spalte die offenen Dateien und in der zweiten das dazugehoerige Programm.
lsof | awk -F\ '{printf("%s\n",$1)}' | sort | uniq -c | sort -bg
Damit kannst du das Problem verursachende Programm sofort erkennen.
-- aus einer Mail von Harry.
Und mit diesem Einzeiler kann man die Anzahl der offenen Dateien ermitteln:
lsof -n | wc -l
-- aus einer Mail von Sebastian M.
Antwort 2:
Die Anzahl der maximal geöffneten Dateien steht im procfs. Kannst du mit
/sbin/sysctl fs.file-max
prüfen. Bei der Arktur ist dieser Wert mit 18882 eigentlich ausreichend. Falls du noch mehr offene Dateien brauchst:
/sbin/sysctl -w fs.file-max=32768 /sbin/sysctl -p
und nochmal zur Kontrolle:
/sbin/sysctl fs.file-max
Der Wert bleibt auch nach einem Neustart erhalten.
-- aus einer Mail von Harry.
Antwort 3:
Diesen Fehler hatte ich auch schon bei mir. Es war ein saublöder Fehler. In der Crontab stand alle 2 Minuten ein Ping-Befehl ohne die Option, diesen nur einmal ausführen. Also wurde alle 2 Minuten eine weitere Instanz gestartet.
So sollte der richtige Eintrag in der "crontab" aussehen, wobei "-c 1" die Anzahl der Anfragen auf 1 begrenzt und "-w 20" den Timout auf 20 Sekunden setzt:
*/3 * * * * ping -c 1 -w 20 194.8.194.60 > /dev/null
-- aus einer Mail von Stephan Dr., Harry und Jens Fr.