Existe um máximo de arquivos abertos por processo no Linux?

5

A minha pergunta é bastante simples e está realmente indicada no título. Um dos meus aplicativos gera erros em relação a "muitos arquivos abertos" em mim, embora o limite para o usuário com o qual o aplicativo é executado seja maior que o padrão de 1024 (lsof -u $ USER relata 3000 fds abertos).

Como não consigo imaginar por que isso acontece, acho que pode haver um máximo por processo.

Qualquer ideia é muito apreciada!

Editar: alguns valores que podem ajudar ...

root@Debian-60-squeeze-64-minimal ~ # ulimit -n
100000

root@Debian-60-squeeze-64-minimal ~ # tail -n 4 /etc/security/limits.conf 
myapp  soft nofile 100000
myapp  hard nofile 1000000
root soft nofile 100000
root hard nofile 1000000

root@Debian-60-squeeze-64-minimal ~ # lsof -n -u myapp | wc -l
2708
    
por Malax 06.11.2012 / 17:24

2 respostas

4

Sim, o recurso ulimit limita o número de arquivos abertos e muitas outras coisas, como tamanho da pilha, tamanho do dump principal, etc.

    
por 06.11.2012 / 17:28
2

Você pode encontrar o limite para um processo com pid em /proc/<pid>/limits e há uma entrada Max open files .

    
por 06.08.2015 / 05:38