Como definir um limite global de nofile para evitar o erro de "muitos arquivos abertos"?
Eu tenho um serviço websocket. é strage que tem erro: "muitos arquivos abertos", mas eu configurei o sistema configure:
/etc/security/limits.conf
* soft nofile 65000
* hard nofile 65000
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000
ulimit -n
//output 6500
Então, eu acho que o meu sistema configurar está certo.
Meu serviço é gerenciado pelo supervisor, é possível limitar o supervisor?
verifique o início do processo pelo supervisor:
cat /proc/815/limits
Max open files 1024 4096 files
verifique o início manual do processo:
cat /proc/900/limits
Max open files 65000 65000 files
O motivo é usado para o supervisor gerenciar serviços. se eu reiniciar o supervisor e reiniciar o processo filho, está "max open files" ok (65000), mas errado (1024) quando o supervisor de reinicialização do sistema é iniciado automaticamente.
Pode haver um nível de inicialização do supervisor muito alto e a configuração do sistema não funciona quando o supervisor é iniciado?
editar:
sistema: ubuntu 12.04 64bit
Não é um problema do supervisor, todos os processos de inicialização automática após a reinicialização do sistema não usam o sistema configurado (máximo de arquivos abertos = 1024), mas a reinicialização está ok.
atualizar
Talvez o problema seja:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/Aumentar o máximo de arquivos abertos para Ubuntu / Upstart (initctl)Agora, a pergunta é: como definir um limite de nofile global, porque eu não quero definir o limite de nofile em todos os scripts iniciais necessários.