"Muitos arquivos abertos" "Too many open files"

Updated . Posted . Visible to the public.

Fonte 1: http://dicasjboss.blogspot.com.br/2007/09/javanetsocketexception-too-many-open.html Show archive.org snapshot

Fonte 2: http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/ Show archive.org snapshot

Sobre as seguintes exceções:

  • FileNotFoundException: ... (Too many open files)
  • FileNotFoundException: ... (Muitos arquivos abertos)
  • java.net.SocketException: Too many open files
  • java.net.SocketException: Muitos arquivos abertos

A exceção pode ocorrer se a quantidade de arquivos que você está processando ultrapassar o limite determinado pelo SO.

O SO tem um limite de numero de arquivos que podem estar abertos simultaneamente, no caso do ubuntu o limite é de 1024.

Para ver o do seu computador (linux) execute no terminal:

ulimit -a   # ver os parametros que estao definidos
ulimit -n   # ver o numero de arquivos abertos

Para aumentar basta seguir os seguintes passos:

//abra o arquivo /etc/security/limits.conf e adicione as seguintes linhas:
*  soft  nofile 9000
*  hard  nofile 65000

// onde o ' * ' diz respeito ao usuário, ou seja, estas configurações serão utilizadas por todos 
// os usuários do computador (exceto o root). Pode ser substituído pelo nome de um usuário.    

//Para ubuntu:
//por ultimo adicione a seguinte linha no arquivo /etc/pam.d/common-session
session required pam_limits.so

//Para Red Hat edite o arquivo /etc/pam.d/login
session required /lib/security/pam_limits.so 

//reinicie o computador para aplicar a novidade em todo o sistema (deslogar um usuário e logar novamente já terá as alterações aplicadas)
Victor Carvalho
Last edit
Bruno Vieira
Posted by Victor Carvalho to ZeroGlosa (2013-05-21 14:58)