NGINX Mantém Crashing, Parece ser por causa de muitos arquivos abertos

1

Como afirmado no título, meu servidor Nginx parece estar travando constantemente, embora a razão seja desconhecida.

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

Eu tentei aumentar o limite de arquivos abertos, o que tem algum efeito, mas sem nenhum benefício sério.

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)

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

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 posso dar permissão para aumentar o limite de arquivos?

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

Obrigado!

Acabei de marcar mais alguns dados, editei meus arquivos, mas, por algum motivo, ao verificar o limite máximo, ele diz 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 o meu fs.file-max

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

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

Eu editei este arquivo já 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
    
por Nick 29.09.2015 / 23:34

1 resposta

1

fs.file-max é um limite para todo o sistema no número total 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 via 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 quiserem.

    
por 30.09.2015 / 00:02