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.