FAQ:Arktur4/Toomanyopenfiles: Unterschied zwischen den Versionen
(3 Antworten möglich) |
(tatsächlich geöffnete Dateien ermitteln) |
||
Zeile 23: | Zeile 23: | ||
-- aus einer Mail von Harry. | -- aus einer Mail von Harry. | ||
Und mit diesem Einzeiler kann man die Anzahl der offenen Dateien ermitteln: | |||
<pre> | |||
lsof -n | wc -l | |||
</pre> | |||
-- aus einer Mail von Sebastian M. | |||
'''Antwort 2:''' | '''Antwort 2:''' | ||
Die Anzahl der maximal | Die Anzahl der maximal geöffneten Dateien steht im procfs. Kannst du mit | ||
<pre> | <pre> | ||
Zeile 33: | Zeile 41: | ||
</pre> | </pre> | ||
prüfen. Bei der Arktur ist dieser Wert mit 18882 eigentlich ausreichend. | |||
Falls du noch mehr offene Dateien brauchst: | Falls du noch mehr offene Dateien brauchst: | ||
Version vom 28. November 2006, 21:34 Uhr
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.