Loading...
 

Linux Open File Limit


Die Anzahl an geöffneten Dateien ist in Linux begrenzt. Wird die maximal Anzahl überschritten kommt es zu folgenden Fehlermeldungen:

[warn] epoll_create: Too many open files
[warn] evutil_make_internal_pipe_: pipe: Too many open files
[err] evsig_init_: socketpair: Too many open files

Das aktuelle Limit feststellen

Mit folgendem Befehl auf der Kommandozeile bekommt man dier aktuellen Hard- und Softlimits für den eigenen User:
ulimit -Hn
und
ulimit -Sn

Die aktuell geöffneten Dateien anzeigen

Folgendes zeigt die für den eigenen User aktuell geöffneten Dateien an:
lsof -u `whoami` | wc -l

Wie kann man die Werte ändern?

Zur Laufzeit kann man die Werte (Sn und HN) wie folgt ändern:
ulimit -n 4096

Wo kann man die Werte dauerhaft ändern?

In der Datei 'etc/security/limits.conf' werden die Limits auf Userebene konfiguriert.

Die Datei kann man sich anzeigen lassen:
cat /etc/security/limits.conf

Diese Einträge kann man ändern:

  • soft nofile 1024
  • hard nofile 1024


Der * besagt, dass der angegebene Einträg für alle Arten von Verbindungen gilt.

So manches Linux lässt allerding nur bestimmte Höchstwerte zu. Übertreibt man es, wird die Angabe ohne Warnung ignoriert.

Mit dem vi-Editor kann man die Datei ändern:
(wenn die Datei schreibgeschützt ist, kann man 'sudo' verwenden)
sudo vi /etc/security/limits.conf

Mit i in den Einfügemodus und Änderungen vornehmen.
[Esc] beendet den Einfügemodus
:wq speichert die Datei und beendet den Editor.

Danach muss man sich neu anmelden oder man tippt:
sysctl -p