Es sind nicht wirklich offene Datei-Handles, die aufgebraucht sind, sondern Inotify-Uhren.
Sie können dies in der Fehlermeldung sehen:
Sep 13 05:32:22 pars.work systemd[1]: Failed to set a watch for nginx.service's PID file /var/run/nginx.pid: Too many open files
Um das Problem zu lösen, müssen Sie die Anzahl der im System verfügbaren Inotify-Überwachungen erhöhen. Wenn Sie es tatsächlich überprüfen, werden Sie feststellen, dass es einen lächerlich niedrigen Wert wie 8192 hat.
$ sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 8192
Sie können die sysctl fs.inotify.max_user_watches
setzen dauerhaft auf einen höheren Wert, indem Sie /etc/sysctl.conf
bearbeiten oder Erstellen einer Datei im /etc/sysctl.d
Verzeichnis. Mein System hat zum Beispiel:
$ cat /etc/sysctl.d/10-user-watches.conf
fs.inotify.max_user_watches = 1048576
Und dann mit sysctl -p
laden .
Vielleicht möchten Sie nicht direkt zu dieser Nummer gehen und den Kernel veranlassen, Speicher zuzuweisen, um eine Million Benutzerdatei-Überwachungsschlitze zu verfolgen; Nehmen Sie stattdessen einfach den aktuellen Wert und verdoppeln Sie ihn, bis das Problem nicht mehr auftritt.