Como eu defino um limite no número de arquivos que o Linux pode abrir?

10

Eu pretendo executar um aplicativo Java usando nohup ... & . O limite deve se aplicar a comandos como este.

    
por Ricardo Altamirano 08.03.2010 / 09:35

6 respostas

5

A maioria dos sistemas usa PAM , e tem o módulo pam_limits definido com base em /etc/security/limits.conf . O limite por usuário para arquivos abertos é chamado nofile . Você pode configurá-lo para cada usuário ou para um determinado usuário ou grupo, e você pode definir um limite que o usuário pode substituir (soft limit) e outro que somente o root pode substituir (hard limit). A documentação e a página limits.conf man os detalhes. Por exemplo, para aumentar o limite para 50000 para todos, coloque esta linha em /etc/limits.conf (a configuração entra em vigor quando você faz o login):

* - nofile 50000
    
por 05.04.2011 / 23:03
3

você pode adicionar fs.file-max = <your number> em /etc/sysctl.conf . Então reinicie.

    
por 08.03.2010 / 09:43
2
ulimit -n

pode modificar as configurações do processo e

/proc/sys/fs/file-max

ou a variável sysctl chamada fs.file-max pode ser usada para ler e definir o valor de todo o sistema

    
por 08.03.2010 / 09:41
0

Você pode usar o ulimit para isso:

link

Embora você deva garantir que a abertura de tantas alças de arquivos seja absolutamente necessária antes de recorrer a tais ajustes. Aumentar o número máximo de identificadores de arquivos só porque você esqueceu de fazer um inputstream.close () em um loop só vai atrasar o problema subjacente.

    
por 08.03.2010 / 09:48
0

vi ~ / .bashrc E adicione uma linha no final do arquivo

ulimit -n 169203
    
por 08.03.2010 / 11:00
0

Use ulimit (comando Bash - man bash ou encontre similar para o seu shell) por instância do programa. Não use limites globais do sistema se você não sabe o que está fazendo - possível DoS.

    
por 06.04.2011 / 02:17