Se você olhar para proc (5) , /proc/sys/fs/file-max
"define um limite para todo o sistema no número de arquivos abertos para todos os processos". Em particular, ele não diz que um único processo pode abrir muitos arquivos.
Você pode consultar o sysconf (3) , que descreve OPEN_MAX
como "O número máximo de arquivos que um processo pode abrir a qualquer momento". Você pode recuperar esse valor executando getconf OPEN_MAX
.
Na verdade, não sei de improviso o tamanho que você pode fazer de OPEN_MAX
, e não estou inclinado a investigar mais a esta hora, mas sinta-se à vontade para experimentar e informar-nos de volta.
Incidentalmente, eu também executaria ulimit -a
para mostrar todos os limites. A execução de ulimit
sozinho em bash
implica em ulimit -f
, que mostra apenas o tamanho máximo dos arquivos gravados pelo shell e seus filhos.
P.S. Se seu aplicativo precisar manter um milhão de arquivos abertos ao mesmo tempo, sugiro que você reavalie seu design.