Muitos arquivos abertos?

Em aplicações de grande porte, como servidores JEE, o número de arquivos e processos abertos pode ser relativamente grande. Isso ocasiona um problema em alguns sistemas Linux, pois o número de arquivos  e processos abertos por usuário é limitado e uma das mensagens de erro que você poderá encontrar será: "Too many open files".

Isso ocorre ao utilizar o Oracle SOA Suite no Ubuntu, portanto é uma boa prática realizar esses procedimentos antes da instalação.

O primeiro passo é criar um novo arquivo na pasta /etc/sysctl.d ou adicionar a seguinte linha no arquivo /etc/sysctl.conf:

fs.file-max = 100000

Onde 100000 é o número máximo de arquivos que o kernel do linux pode manipular. Após feito isso, edite o arquivo /etc/security/limits.conf e adicione as seguintes linhas:

thiago soft nproc 2047
thiago hard nproc 16384
thiago soft nofile 1024
thiago hard nofile 65536

Substitua thiago pelo usuário que você está executando os processos. Na terceira coluna, nproc é o número máximo de processos abertos para o usuário e nofile é o número máximo de arquivos abertos para o usuário. Dẽ uma lida no início do arquivo que há explicações sobre cada parâmetro.

Reinicie o computador ou recarregue as alterações com o comando:

sysctl -p

Caso o erro persista, altere os valores de número de processos e número de arquivos abertos.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6