NGINX stürzt ständig ab, anscheinend wegen zu vieler geöffneter Dateien

NGINX stürzt ständig ab, anscheinend wegen zu vieler geöffneter Dateien

Wie im Titel angegeben, scheint mein Nginx-Server ständig abzustürzen, obwohl der Grund unbekannt ist.

Ich habe einige Hinweise aus meinem Fehlerprotokoll, die zu dem Problem führen könnten.

Ich habe versucht, das Limit für geöffnete Dateien zu erhöhen, was eine gewisse Wirkung hatte, aber ohne wirklichen Erfolg.

2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)
2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)

Ich habe versucht, das Limit zu erhöhen, aber ich sehe dies auch in meinem Fehlerprotokoll

2015/09/29 17:18:02 [alert] 20632#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20633#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20560#0: recvmsg() truncated data

Wie erteile ich die Erlaubnis zur Erhöhung des Dateilimits?

Und ist das überhaupt der Grund, warum mein Server abstürzt?

Danke schön!

Habe gerade noch ein paar Daten geprüft, ich habe meine Dateien bearbeitet, aber aus irgendeinem Grund steht beim Prüfen des harten Limits 4096?

root@nalsec:~# sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 0
fs.file-max = 2500000000000000000
root@nalsec:~# ulimit -Hn
4096

Was im Gegensatz zu meinem fs.file-max steht

Ich habe dies versucht und es heißt, ich habe keine Berechtigung (ich bin Root).

root@nalsec:~# ulimit -Hn 1000000000
-bash: ulimit: open files: cannot modify limit: Operation not permitted

Ich habe diese Datei bereits ohne Erfolg bearbeitet nano /etc/security/limits.conf

#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

# End of file
nginx       soft    nofile  10240000000000000000000
nginx       hard    nofile  10240000000000000000000
*         hard    nofile      10240000000000000000000000
*         soft    nofile      10240000000000000000000000
root      hard    nofile      10240000000000000000000000
root      soft    nofile      10240000000000000000000000
www-data soft nofile 1024000000000000000
www-data hard nofile 1024000000000000000

Antwort1

fs.file-maxist eine systemweite Begrenzung dergesamtAnzahl der Dateideskriptoren, die im System geöffnet werden können. Dies hat keine Auswirkungen auf das Limit pro Prozess.

Um das Dateideskriptorlimit für einzelne Prozesse zu erhöhen, gehen Sie am einfachsten wie folgt vor limits.conf:

# cat /etc/security/limits.d/nofile.conf
* soft nofile 10000
* hard nofile 1000000

Dadurch stehen allen Prozessen standardmäßig 10.000 Datei-Deskriptoren zur Verfügung, mit der Möglichkeit, setrlimitbei Bedarf ein Upgrade auf 1.000.000 (über ) anzufordern.

verwandte Informationen