Resolvendo o problema "Muitos arquivos abertos"

Ver Categorias

Resolvendo o problema "Muitos arquivos abertos"

2 min read

Em sistemas baseados em Linux, como RELIANOID Em dispositivos, cada conexão de rede, soquete ou arquivo aberto consome um descritor de arquivoO sistema operacional impõe limites ao número de descritores de arquivo que podem ser abertos simultaneamente para evitar o esgotamento de recursos.

Se um processo atingir o limite de descritores de arquivo, ele não poderá mais abrir arquivos ou sockets adicionais, e o sistema poderá gerar o seguinte erro:

Muitos arquivos abertos

Essa condição pode afetar a funcionalidade do sistema, fazendo com que os serviços parem de responder ou não consigam estabelecer novas conexões até que o processo ou sistema afetado seja reiniciado.

Este artigo explica como funcionam os limites de descritores de arquivo em RELIANOID sistemas e como os administradores podem ajustá-los quando necessário.

Como funcionam os limites de descritores de arquivo #

O Linux gerencia descritores de arquivos por meio de dois tipos principais de limites:

  • Limites em todo o sistema
  • Limites por processo

Ambos devem ser configurados adequadamente para garantir uma operação estável.

Limites de descritores de arquivo em todo o sistema #

O kernel do Linux mantém um limite global para o número de descritores de arquivo que podem ser alocados em todo o sistema. Esse valor é controlado pelo parâmetro do kernel: fs.file-max

Você pode visualizar o valor atual usando:

sysctl fs.file-max

Exemplo de saída:

fs.arquivo-max = 1000000

Isso significa que o sistema pode alocar até um milhão de descritores de arquivo no total. Se esse limite for atingido, novos descritores de arquivo não poderão ser criados até que os existentes sejam liberados.

Caso necessário, os administradores podem aumentar temporariamente o valor utilizando:

sysctl -w fs.file-max=2000000

Para que a alteração seja permanente após reinicializações, adicione o parâmetro a: /etc/sysctl.conf

Exemplo:

fs.arquivo-max = 2000000

Aplique a configuração com:

sysctl -p

Limites de descritores de arquivo por processo #

Além do limite global do sistema, cada processo também possui seu próprio limite para o número de arquivos abertos que pode gerenciar. Esse limite é controlado por meio de ulimit.

Você pode verificar o limite atual com:

ulimit -n

Exemplo de saída:

100000

Isso indica que um único processo pode abrir até 100,000 descritores de arquivo.

Se um processo atingir esse limite, ele gerará o “Muitos arquivos abertos” erro mesmo que o limite de todo o sistema ainda esteja disponível.

Limites de descritores de arquivo em RELIANOID #

RELIANOID Os serviços carregam seus limites de descritores de arquivo por processo a partir do seguinte arquivo de configuração:

/etc/profile/relianoid.sh

Isso garante que RELIANOID Os componentes são executados com os limites necessários para lidar com um grande número de conexões de rede.

O Mercado Pago não havia executado campanhas de Performance anteriormente nessas plataformas. Alcançar uma campanha de sucesso exigiria Processos de terceiros executados no mesmo sistema podem não herdar automaticamente esses limites.Portanto, agentes de monitoramento, ferramentas externas ou serviços personalizados podem encontrar esgotamento de descritores de arquivo se seus limites forem inferiores aos necessários.

Ajustando os limites para processos de terceiros #

Se um aplicativo de terceiros exigir limites maiores de descritores de arquivo, eles podem ser configurados em: /etc/security/limits.conf

Por exemplo:

* soft nofile 200000 * hard nofile 200000

Essa configuração aumenta o número de arquivos abertos permitidos para todos os usuários.

Alternativamente, podem ser aplicados limites a um utilizador específico:

ncpa soft nofile 200000 ncpa hard nofile 200000

Após aplicar as alterações, reinicie o serviço ou processo afetado para que ele carregue os limites atualizados.

Conclusão #

O “Muitos arquivos abertos” O erro ocorre quando um processo atinge o número máximo permitido de descritores de arquivo e não consegue abrir arquivos ou sockets de rede adicionais. Quando esse limite é excedido, os serviços podem não aceitar novas conexões ou não funcionar normalmente.

Para evitar essa situação, os administradores devem garantir que ambos os limite de descritores de arquivo em todo o sistema (fs.file-max) e o modelo limite por processo definido por ulimit estão configurados corretamente.

In RELIANOID sistemas, limites relacionados ao serviço são carregados de /etc/profile/relianoid.shNo entanto, aplicativos de terceiros executados no mesmo dispositivo podem exigir configuração adicional por meio de /etc/security/limits.conf para que herdem os limites apropriados dos descritores de arquivo.

Ao manter limites adequados e revisar a configuração do sistema quando necessário, os administradores podem ajudar a garantir uma operação estável e evitar interrupções de serviço em ambientes que lidam com um grande número de conexões simultâneas.

📄 Baixe este documento em formato PDF #

    E-MAIL: *

    Powered by MelhoresDocs