Vamos começar com alguns artigos úteis
Além disso, o que você já listou.
Basicamente, o que você diz é isso:
- Número máximo de descritores de arquivos abertos por sistema: 7017952
- ulimit -a: Número máximo de descritores de arquivos que podem ser abertos por um shell e processados com início
- ulimit -Sn: O mesmo que acima, mas mostra apenas o limite flexível para o número máximo de descritores de arquivos
- ulimit -Hn: mostra limite máximo para descritores de arquivos abertos de sessão
Basicamente, o que você precisa fazer é ver a saída de lsof
do seu processo para ver onde ele está ficando preso. Limite suave que você pode alterar para cima ou para baixo para alterar o número possível de descritores de arquivos abertos durante a sessão. Limite rígido você só pode diminuir, mas somente o root pode aumentar.
Por isso, gostaria de sugerir que você analisasse:
sysctl fs.file-nr
que lhe daria o número total de descritores de arquivos abertos e não utilizados no sistema e também a saída de
lsof -p <pid>
em que <pid>
é o processo em questão para determinar quantos arquivos e soquetes esse processo abriu e ver se você está atingindo seu limite.