Ao executar meu aplicativo, às vezes recebo um erro too many files open.
A execução ulimit -arelata que o limite é 1024. Como faço para aumentar o limite acima de 1024?
Edite os
ulimit -n 2048 resultados em um erro de permissão.
Ao executar meu aplicativo, às vezes recebo um erro too many files open.
A execução ulimit -arelata que o limite é 1024. Como faço para aumentar o limite acima de 1024?
Edite os
ulimit -n 2048 resultados em um erro de permissão.
Respostas:
Você sempre pode tentar fazer um ulimit -n 2048. Isso redefinirá apenas o limite do seu shell atual e o número especificado não deve exceder o limite máximo
Cada sistema operacional possui uma configuração de limite rígido diferente em um arquivo de configuração. Por exemplo, o limite de arquivo aberto no Solaris pode ser definido na inicialização em / etc / system.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
No OS X, esses mesmos dados devem ser definidos em /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
No Linux, essas configurações geralmente estão no /etc/security/limits.conf.
Existem dois tipos de limites:
Os limites flexíveis podem ser definidos por qualquer usuário, enquanto os limites rígidos são alteráveis apenas pela raiz. Limites são propriedade de um processo. Eles são herdados quando um processo filho é criado, portanto, os limites de todo o sistema devem ser definidos durante a inicialização do sistema nos scripts init e os limites do usuário durante o login do usuário, por exemplo, usando pam_limits.
Geralmente, há padrões definidos quando a máquina é inicializada. Portanto, mesmo que você possa redefinir seu ulimit em um shell individual, você pode achar que ele redefine o valor anterior na reinicialização. Você pode desejar grep seus scripts de inicialização para os comandos ulimit de existência, se desejar alterar o padrão.
ulimit. Você deve especificar o que está usando (por exemplo, WSL, Cygwin).
Se você estiver usando Linux e recebeu o erro de permissão, precisará aumentar o limite permitido no /etc/limits.confou/etc/security/limits.conf arquivo (onde o arquivo está localizado depende da sua distribuição específica do Linux).
Por exemplo, para permitir que qualquer pessoa na máquina aumente seu número de arquivos abertos até 10000, adicione a linha ao limits.confarquivo.
* hard nofile 10000
Em seguida, efetue logout e logon no seu sistema e você poderá:
ulimit -n 10000
sem um erro de permissão.
rootusuário. Você precisa especificar root hard nofile 10000se deseja ajustar o rootlimite.
ulimite finalmente descobri que estou logado como root. É por isso que eu continuava vendo o 1024 dentro ulimit -a. Troquei o cuidado selvagem e adicionei um *interior limits.conf. Tudo está bom agora, (estou usando as teclas ssh, não se preocupe: P) - Obrigado !!!
/etc/security/limits.d/.
1) Adicione a seguinte linha a /etc/security/limits.conf
webuser hard nofile 64000
depois faça o login como usuário da web
su - webuser
2) Edite os dois arquivos a seguir para o usuário da web
anexar os arquivos .bashrc e .bash_profile executando
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3) Faça logoff, faça login novamente e verifique se as alterações foram feitas corretamente:
$ ulimit -a | grep open
open files (-n) 64000
É isso e eles boom, boom boom.
Se alguns de seus serviços estão se limitando a ulimits, às vezes é mais fácil colocar comandos apropriados no script init do serviço. Por exemplo, quando o Apache está relatando
[alerta] (11) Recurso temporariamente indisponível: apr_thread_create: não é possível criar o thread do trabalhador
Tente colocar ulimit -s unlimitedem /etc/init.d/httpd. Isso não requer uma reinicialização do servidor.