Wenn Sie die Fehlermeldung „Zu viele geöffnete Dateien (24)“ erhalten, erreicht Ihre Anwendung / Ihr Befehl / Skript das von Linux zulässige maximale Limit für geöffnete Dateien. Sie müssen das Limit für offene Dateien wie folgt erhöhen:
Limit erhöhen
Limit pro Benutzer
Datei öffnen: /etc/security/limits.conf
Fügen Sie folgendes gegen Ende ein:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 ist eine faire Zahl. Ich bin mir nicht sicher, was max Limit ist, aber 999999 (Six-9) hat einmal für mich funktioniert, soweit ich mich erinnere.
Sobald Sie die Datei gespeichert haben, müssen Sie sich möglicherweise abmelden und erneut anmelden.
pam-limits
Ich habe an vielen Stellen gelesen, dass ein zusätzlicher Schritt erforderlich ist, damit sich das Limit für Daemon-Prozesse ändert. Ich brauchte noch nicht zu folgen, aber wenn die obigen Änderungen für Sie nicht funktionieren, können Sie dies versuchen.
Öffnen /etc/pam.d/common-session
Folgende Zeile hinzufügen:
session required pam_limits.so
Systemweites Limit
Setzen Sie dies höher als das oben festgelegte Benutzerlimit.
Öffnen /etc/sysctl.conf
Folgendes hinzufügen:
fs.file-max = 2097152
Laufen:
sysctl -p
erhöht die „Gesamtzahl“ der Dateien, die systemweit geöffnet bleiben können.
Neue Grenzwerte überprüfen
Verwenden Sie den folgenden Befehl, um die maximale Grenze der Dateideskriptoren anzuzeigen:
cat /proc/sys/fs/file-max
Hard Limit
ulimit -Hn
Soft Limit
ulimit -Sn
Wenn Sie als root angemeldet sind:
Check Limit für andere Benutzer
Ersetzen Sie einfach www-data
durch den Linux-Benutzernamen, für den Sie Limits überprüfen möchten:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Überprüfen Sie die Grenzen eines laufenden Prozesses:
Find process-id (PID):
ps aux | grep process-name
Angenommen, XXX ist PID, führen Sie dann die folgenden Befehle aus, um die Grenzwerte zu überprüfen:
cat /proc/XXX/limits