Christoph Zurnieden: "Too many open files" ?

Beitrag lesen

Hallo,

Ich würde gerne mal wissen, was im Errorlog diese Meldung bedeutet ?
[client xxx.xxx.xxx.xxx] (24)Too many open files: couldn't spawn child process: /home/pfad/zum/aufgeruften/script.

Tja, irgendetwas forked da wie wild ;-)

Nein, Scherz beiseite:
Pro Prozess sind nur eine bestimmte Menge offener Dateien zugelassen. Da ich nur anhand der Pfadtrenner ganz grob auf Unix tippen kann, ist folgendes nur dafür und um genau zu sein, auch nur für Linux.

Bei älteren Kerneln ließ sich das (limits.h bzw fs.h) nur durch neukompilieren erhöhen, bei neueren (2.4) ist es das auch so möglich, falls das /proc Dateisystem mit eingebaut wurde.

To raise the maximum file handles and open-inodes the kernel will accept:

echo "32768" > /proc/sys/fs/file-max
echo "65536" > /proc/sys/fs/inode-max

somewhere in your startup.

inode-max sollte 2-3x so groß wie file-max sein.

Für die aktuellen Werte siehe 'ulimit -a' (Geht wahrscheinlich nur via Perls system() o.ä. falls kein Shellzugang vorhanden. Irgendjemand hat mal eine Art Telnet auf diese Weise zusammengbastelt, siehe Selfforums-Archiv)

Nein, stimmt nicht, das ändert ja nichts an der Grenze pro Prozess!

Also folgendes funktioniert unter 2.4

'ulimit -n $OPEN_MAX'

Wobei $OPEN_MAX eine Zahl 2^x sein sollte (z.B.: 2024)

Ich muß Dich aber enttäuschen, sowas geht normalerweise nur durch root.
Wenn auch für normale User: wechsel den Provider!

Jetzt wird es allmälich lästig, da dieser Fehler jetzt schon wöchentlich auftritt, und plötzlich keine Perl Scripts mehr funktionieren. Nur HTML wird angezeigt, und sobald ich ein Perl Script aufrufe : Internal Server Error.

(Es kann nur mit der Schlampigkeit meines Providers zu tun haben, weil dieser Fehler tritt immer plötzlich von einer Sekunde auf die nächste auf.

Ist wahrscheinlich kein Schlampigkeit, sondern Absicht. Irgendwie müssen die begrenzten Resourcen ja mehr oder weniger gerecht verteilt werden ;-)

Aber zumindest weißt Du jetzt, wo Du ansetzen mußt.

BTW: Die meisten mir bekannten Sysadmins trinken übrigens gerne sehr alten Whiskey ;-)

so short

Christoph Zurnieden