Wie kann ich die Anzahl der geöffneten Dateien unter Linux ändern?
Wenn ich meine Anwendung ausführe, erhalte ich manchmal eine Fehlermeldung über "zu viele offene Dateien".
Das Ausführen von ulimit -a
meldet, dass das Limit bei 1024 liegt. Wie kann ich das Limit über 1024 erhöhen?
Edit
ulimit -n 2048
führt zu einem Berechtigungsfehler.
187
3
Sie können immer versuchen, ein
ulimit -n 2048
auszuführen. Dies setzt nur das Limit für Ihre aktuelle Shell zurück und die angegebene Zahl darf das harte Limit nicht überschreitenJedes Betriebssystem hat ein anderes hartes Limit, das in einer Konfigurationsdatei festgelegt ist. Zum Beispiel kann das harte Limit für offene Dateien unter Solaris beim Booten in /etc/system gesetzt werden.
Unter OS X müssen die gleichen Daten in /etc/sysctl.conf gesetzt werden.
Unter Linux befinden sich diese Einstellungen oft in /etc/security/limits.conf.
Es gibt zwei Arten von Limits:
Weiche Limits können von jedem Benutzer gesetzt werden, während harte Limits nur von root geändert werden können. Limits sind eine Eigenschaft eines Prozesses. Sie werden vererbt, wenn ein Kindprozess erstellt wird, daher sollten systemweite Limits während der Systeminitialisierung in Init-Skripten gesetzt werden und Benutzerlimits sollten während der Benutzeranmeldung gesetzt werden, z.B. mit pam_limits.
Oftmals werden beim Booten des Rechners Standardwerte gesetzt. Auch wenn Sie also Ihr ulimit in einer individuellen Shell zurücksetzen, kann es sein, dass es beim Neustart wieder auf den vorherigen Wert zurückgesetzt wird. Sie sollten Ihre Boot-Skripte nach den ulimit-Befehlen durchsuchen, wenn Sie den Standardwert ändern möchten.
Wenn Sie Linux verwenden und der Berechtigungsfehler auftritt, müssen Sie die erlaubte Grenze in der Datei
/etc/limits.conf
oder/etc/security/limits.conf
erhöhen (wo sich die Datei befindet, hängt von Ihrer spezifischen Linux-Distribution ab).Um zum Beispiel jedem auf dem Rechner zu erlauben, die Anzahl der offenen Dateien auf 10000 zu erhöhen, fügen Sie diese Zeile in die Datei
limits.conf
ein.* hard nofile 10000
Dann loggen Sie sich aus und melden Sie sich erneut an Ihrem System an und Sie sollten in der Lage sein, dies zu tun:
ulimit -n 10000
ohne einen Berechtigungsfehler.
/etc/security/limits.conf
hinzudann als Webuser anmelden
Fügen Sie die Dateien .bashrc und .bash_profile hinzu, indem Sie
Das war's und sie bumm, bumm bumm.