NGINX continua travando, parece ser por causa de muitos arquivos abertos

NGINX continua travando, parece ser por causa de muitos arquivos abertos

Conforme declarado no título, meu servidor Nginx parece travar constantemente, embora o motivo seja desconhecido.

Tenho algumas dicas do meu log de erros que podem levar ao problema.

Tentei aumentar o limite de arquivos abertos, o que teve algum efeito, mas sem sucesso.

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)

Tentei aumentar o limite, mas também vejo isso no meu log de erros

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

Como dou permissão para aumentar o limite de arquivos?

Além disso, esse é o motivo pelo qual meu servidor está travando?

Obrigado!

Acabei de verificar mais alguns dados, editei meus arquivos, mas por algum motivo, ao verificar o limite rígido, aparece 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

O que contrasta com meu fs.file-max

Eu tentei isso e diz que não tenho permissão (sou root)

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

Eu já editei este arquivo sem sucesso 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

Responder1

fs.file-maxé um limite para todo o sistematotalnúmero de descritores de arquivos que podem ser abertos no sistema. Não tem impacto no limite por processo.

Para aumentar o limite do descritor de arquivo para processos individuais, é mais fácil fazer isso por meio de limits.conf:

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

Isso dará a todos os processos 10.000 descritores de arquivos por padrão, com a capacidade de solicitar uma atualização para 1.000.000 (via setrlimit) se desejarem.

informação relacionada