Maior número máximo permitido de arquivos abertos no Linux

7

Existe um limite (técnico ou prático) para o tamanho que você pode configurar o número máximo de arquivos abertos no Linux? Existem alguns efeitos adversos se você configurá-lo para um número muito grande (digamos 1-100M)?

Estou pensando em usar o servidor aqui, não em sistemas incorporados. Programas usando enormes quantidades de arquivos abertos podem, claro, consumir memória e ser lentos, mas estou interessado em efeitos adversos se o limite for configurado muito maior do que o necessário (por exemplo, memória consumida apenas pela configuração).

    
por Sampo 01.01.2017 / 23:19

3 respostas

8

Eu suspeito que o principal motivo para o limite é evitar o consumo excessivo de memória (cada descritor de arquivo aberto usa memória do kernel). Ele também serve como uma proteção contra aplicativos com bugs que vazam descritores de arquivos e consomem recursos do sistema.

Mas dado o quão absurdamente grande parte dos sistemas modernos de RAM são comparados aos sistemas de 10 anos atrás, eu acho que os padrões hoje são bem baixos.

Em 2011, o limite padrão para os descritores de arquivos no Linux era aumentado de 1024 para 4096 .

Alguns softwares (por exemplo, MongoDB) usam muito mais descritores de arquivos do que o limite padrão. O pessoal do MongoDB recomenda aumentar esse limite para 64.000 . Eu usei um rlimit_nofile de 300.000 para determinados aplicativos.

Contanto que você mantenha o limite flexível no padrão (1024), provavelmente é bastante seguro aumentar o limite rígido. Os programas precisam chamar setrlimit() para aumentar o limite acima do limite flexível e ainda estão limitados pelo limite máximo.

Veja também algumas perguntas relacionadas:

por 02.01.2017 / 00:49
3

O impacto normalmente não seria observável, mas o módulo IO do kernel terá que cuidar de todos esses descritores de arquivos abertos e eles também podem ter um impacto na eficiência do cache.

Esses limites têm a vantagem de proteger o usuário de seus próprios erros (ou de terceiros). Por exemplo, se você executar um programa ou script pequeno que se bifurece indefinidamente, ele eventualmente bloqueará um dos ulimit s e, portanto, impedirá um congelamento de computador mais intenso (possivelmente irrecuperável).

A menos que você tenha motivos precisos para aumentar qualquer um desses limites, evite-o e durma melhor.

    
por 01.01.2017 / 23:36
0

Acho que sua preocupação é compreensível, mas o mais provável é que o Linux não consuma muita memória para descritores de arquivos configurados (mas não usados):)

Não me lembro de um problema como esse em minha carreira profissional nos últimos 10 anos.

Atenciosamente.

    
por 17.01.2017 / 10:21