NGINX sigue fallando, parece deberse a demasiados archivos abiertos

NGINX sigue fallando, parece deberse a demasiados archivos abiertos

Como se indica en el título, mi servidor Nginx parece fallar constantemente aunque se desconoce el motivo.

Tengo algunos consejos de mi registro de errores que pueden provocar el problema.

Intenté aumentar el límite de archivos abiertos, lo que tiene cierto efecto, pero fue en vano.

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)

Intenté aumentar el límite, pero también veo esto en mi registro de errores.

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

¿Cómo doy permiso para aumentar el límite de archivos?

Además, ¿es esta la razón por la que mi servidor falla?

¡Gracias!

Acabo de verificar algunos datos más, he editado mis archivos, pero por alguna razón al verificar el límite estricto dice 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

Lo que contrasta con mi fs.file-max

Probé esto y dice que no tengo permiso (soy root)

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

Ya edité este archivo sin éxito 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

Respuesta1

fs.file-maxes un límite para todo el sistematotalNúmero de descriptores de archivos que se pueden abrir en el sistema. No tiene ningún impacto en el límite por proceso.

Para aumentar el límite de descriptores de archivos para procesos individuales, es más fácil hacerlo a través de limits.conf:

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

Esto dará a todos los procesos 10.000 descriptores de archivos de forma predeterminada, con la capacidad de solicitar una actualización a 1.000.000 (a través de setrlimit) si así lo desean.

información relacionada