Sim, o recurso ulimit
limita o número de arquivos abertos e muitas outras coisas, como tamanho da pilha, tamanho do dump principal, etc.
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
Sim, o recurso ulimit
limita o número de arquivos abertos e muitas outras coisas, como tamanho da pilha, tamanho do dump principal, etc.
Você pode encontrar o limite para um processo com pid em /proc/<pid>/limits
e há uma entrada Max open files
.