Existem dois limites no Linux:
- Um limite global sobre a quantidade total de file descriptors que podem ser utilizados em todo o sistema.
- Um limite por processo no valor total de file descriptors abertos que podem ser utilizados por uma aplicação e é esse limite que nós vamos alterar abaixo.
Muitas distribuições Linux tem um número maxímo de file descriptors por processo igual a 1024, afetando assim o número de Sockets que podem ser abertos então para evitar a exception java.net.SocketException: Too many open files basta aumentar o número de file descriptors.
Para verificar o limite atual de file descriptors podemos executar o seguinte comando:
ulimit -n
Para verificar o total atual para o JBoss execute:
lsof | grep jboss | wc -l
Para aumentar o limite atual, edite o arquivo /etc/security/limits.conf e o deixe soft e hard com os valores desejados:
# - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits * soft nofile 50000 * hard nofile 50000
O sistema operacional deve ser reiniciado para aplicar essas alterações ou o comando /sbin/sysctl -p deve ser executado. Faça o Logout e realize o Login novamente. Agora execute o comando ulimit -n que deverá retornar 50000.
Comments