GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zu viele offene Dateien auf Debian

Lösung 1:

Wenn Ihr Prozess über ein Skript gestartet wird, können Sie den Aufruf von ulimit direkt vor der Ausführung des Daemons in das Skript einfügen.

Wenn Sie das ulimit für Ihren Benutzer oder für alle Benutzer erhöhen möchten, können Sie Limits festlegen, die über pam_limits angewendet werden beim Login. Diese werden in /etc/security/limits.conf gesetzt . In Ihrem Fall könnten Sie so etwas tun:

*               hard    nofile             2048

Beachten Sie, dass "hart" eine feste Grenze bezeichnet - eine Grenze, die nicht überschritten und nicht geändert werden kann. Ein Soft-Limit kann von einem Benutzer geändert werden (z. B. jemand ohne Root-Fähigkeiten), aber nicht über das Hard-Limit hinaus.

Lesen Sie limits.conf für weitere Informationen zur Verwendung von pam_limits .

Lösung 2:

Es gibt auch ein "total max" von offenen Dateien im Kernel, Sie können die aktuelle Einstellung überprüfen mit:

cat /proc/sys/fs/file-max 

Und setzen Sie einen neuen Wert mit:

echo "104854" > /proc/sys/fs/file-max

Wenn Sie die Konfiguration zwischen Neustarts beibehalten möchten, fügen Sie hinzu

sys.fs.file-max=104854

zu

/etc/sysctl.conf

So prüfen Sie die aktuelle maximale Dateinutzung:

[[email protected] proc]# cat /proc/sys/fs/file-nr
3391    969     52427
|        |       |
|        |       |
|        |       maximum open file descriptors
|        total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)

Lösung 3:

Wie andere gesagt haben, können Sie in /etc/security/limits.conf.

spezifische Limits pro Benutzer oder Gruppe anwenden

Hinweis:ulimit -n zeigt das Soft-Limit.

ulimit -H -n 

wird Ihnen die harte Grenze zeigen.

Dies macht die Ausgabe von ulimit -a und ulimit -n ziemlich verwirrend, wenn Sie zum Beispiel die Anzahl der Dateien von 1024 auf 4096 erhöhen, da Sie die Ausgabe mit hartem Limit erwarten würden, aber immer noch 1024 sehen, was das weiche ist begrenzen.

Denken Sie auch daran, dass diese Limits pro Anmeldung erzwungen werden, also melden Sie sich in einer neuen Shell erneut an und überprüfen Sie Ihre Änderungen, erwarten Sie nicht, dass sie an bestehende Anmeldungen weitergegeben werden.

Lösung 4:

Beachten Sie, dass die Einstellung von ulimits in /etc/security/limits.conf nicht funktioniert, wenn Sie Ihren Prozess mit start-stop-daemon ausführen. Wenn Sie beispielsweise das Limit für offene Dateien für Tomcat auf 20000 erhöhen möchten, müssen Sie diese Zeilen zu /etc/default/tomcat hinzufügen :

ulimit -Hn 32768
ulimit -Sn 32768

Ich bin auf dieses Problem bei Debian 6.0.4 gestoßen. Für andere Prozesse sollten die gegebenen Antworten helfen.


Linux
  1. So erhöhen Sie das Limit für die Anzahl der geöffneten Dateien in Linux

  2. Wie erhöht man das Limit für offene Dateien in Ubuntu?

  3. Zu viele Verbindungsfehler in MySQL

  4. udev starten:udevd inotify_init fehlgeschlagen:zu viele offene Dateien

  5. Max offene Dateien für den Arbeitsprozess

So konfigurieren Sie Samba in Debian

So finden Sie Dateien in Debian 10

Beheben des MySQL-Fehlers:Zu viele offene Dateien

Fehlerbehebung:Zu viele Weiterleitungen

So finden Sie Dateien in Debian

Zu viele Ebenen symbolischer Links