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-max
ist 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, setrlimit
bei Bedarf ein Upgrade auf 1.000.000 (über ) anzufordern.