Eu achei que algumas pesquisas simples produziriam uma resposta, mas fui frustrado. Passei algum tempo olhando a fonte do Linux e encontrei file_table.c . files_init na parte inferior do arquivo de origem é onde a tabela de arquivos abertos é inicializada e tem este comentário:
/*
* One file with associated inode and dcache is very roughly 1K.
* Per default don't use more than 10% of our memory for files.
*/
a lógica nessa função configura o sistema max_files para o maior tamanho máximo solicitado (NR_FILES) ou 10% da memória do sistema. Aparentemente todo arquivo aberto consome cerca de 1K de memória.
No entanto, isso não responde à questão de quanto espaço é necessário para gerenciar os descritores de arquivos não utilizados. Eu acho que é um número muito pequeno por descritor de arquivo, apenas alguns bytes.
Não creio que haja qualquer desvantagem real em definir o número máximo de arquivos para um número muito grande, até (2 ^ 20 deste stack overflow question No entanto, se cada arquivo aberto levar 1K você obviamente ficará sem memória do sistema muito antes de atingir esse limite.
Meu conselho é ir em frente e definir o máximo de arquivos abertos do seu sistema para um número muito maior. Se cada arquivo aberto consumir cerca de 1K, então 128.000 arquivos abertos consumirão apenas cerca de 128MB da RAM do seu sistema. Isso não deve ser um grande problema em um sistema moderno com muitos GB de memória RAM.
Isenção de responsabilidade: Eu baseei tudo isso no meu conhecimento pessoal de sysadmin e em algumas leituras muito superficiais do código-fonte do Linux. Eu não sou hacker de kernel.