FAQ:Arktur4/Toomanyopenfiles: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Anfang)
 
(kat)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Too many open files in system ==
__NOTOC__
{{Archiv}}


aus einer Mail von Harry:
 
== 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:
 
 
<pre>
execl: couldn't exec `/bin/sh'
execl: Too many open files in system
</pre>
 
 
'''Antwort 1:'''
 
Dieser Einzeiler zeigt in der ersten Spalte die offenen Dateien und in der zweiten das dazugehoerige Programm.
 
<pre>
lsof | awk -F\  '{printf("%s\n",$1)}' | sort | uniq -c | sort -bg
</pre>
 
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:
 
<pre>
lsof -n | wc -l
</pre>
 
-- aus einer Mail von Sebastian M.
 
 
'''Antwort 2:'''
 
Die Anzahl der maximal geöffneten Dateien steht im procfs. Kannst du mit


<pre>
<pre>
Bevor Du Reparaturversuche an den Dateisystemen mit den ext2/3 Tools
/sbin/sysctl fs.file-max
</pre>
</pre>


prüfen. Bei der Arktur ist dieser Wert mit 18882 eigentlich ausreichend.
Falls du noch mehr offene Dateien brauchst:
<pre>
/sbin/sysctl -w fs.file-max=32768
/sbin/sysctl -p
</pre>
und nochmal zur Kontrolle:
<pre>
/sbin/sysctl fs.file-max
</pre>
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:
<pre>
*/3 * * * * ping -c 1 -w 20 194.8.194.60 > /dev/null
</pre>
-- aus einer Mail von Stephan Dr., Harry und Jens Fr.




----
----
<div align="right">[[FAQ:Arktur4|zurück]] | [[Hauptseite]]</div>
<div align="right">[[FAQ:Arktur4|zurück]] | [[Hauptseite]]</div>
[[Kategorie:ArchivArktur40]]

Aktuelle Version vom 16. März 2012, 13:17 Uhr


Baustelle 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.



zurück | Hauptseite