Version 5

    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.