Como Aumentar o Limite de Arquivos Abertos no Linux

No Linux, você pode alterar a quantidade máxima de arquivos abertos. Você pode modificar este número usando o comando ulimit. Ele lhe concede a capacidade de controlar os recursos disponíveis para a shell ou processo iniciado por ela.

Ler Também: Set Linux Running Processes Limits on Per-Userl Level

Neste pequeno tutorial vamos mostrar-lhe como verificar o seu limite actual de ficheiros abertos e descrições de ficheiros, mas para o fazer, você precisará de ter acesso root ao seu sistema.

Primeiro, vamos ver como podemos descobrir o número máximo de descritores de ficheiros abertos no seu sistema Linux.

Localizar Limite de Ficheiros Abertos do Linux

O valor é guardado em:

# cat /proc/sys/fs/file-max818354

O número que verá, mostra o número de ficheiros que um utilizador pode ter aberto por sessão de login. O resultado pode ser diferente dependendo do seu sistema.

Por exemplo em um servidor CentOS meu, o limite foi definido para 818354, enquanto no servidor Ubuntu que eu executo em casa o limite padrão foi definido para 176772.

Se você quiser ver os limites hard e soft, você pode usar os seguintes comandos:

Check Hard Limit in Linux

# ulimit -Hn4096

Check Soft Limits in Linux

# ulimit -Sn1024

Para ver os valores hard e soft para diferentes usuários, você pode simplesmente trocar o usuário com “su” para o usuário quais limites você quer verificar.

Por exemplo:

# su marin$ ulimit -Sn1024
$ ulimit -Hn4096

Como verificar os limites dos descritores de ficheiros no Linux

Se estiver a executar um servidor, algumas das suas aplicações podem requerer limites mais altos para os descritores de ficheiros abertos. Um bom exemplo disso são os serviços MySQL/MariaDB ou o servidor web Apache.

Você pode aumentar o limite de ficheiros abertos em Linux editando a directiva do kernel fs.file-max. Para esse propósito, você pode usar o utilitário sysctl.

Sysctl é usado para configurar os parâmetros do kernel em tempo de execução.

Por exemplo, para aumentar o limite de arquivos abertos para 500000, você pode usar o seguinte comando como root:

# sysctl -w fs.file-max=500000

Você pode verificar o valor atual para arquivos abertos com o seguinte comando:

$ cat /proc/sys/fs/file-max

Com o comando acima as alterações que você fez só permanecerão ativas até a próxima reinicialização. Se desejar aplicá-las permanentemente, terá de editar o seguinte ficheiro:

# vi /etc/sysctl.conf

Adicionar a seguinte linha:

fs.file-max=500000

Obviamente, pode alterar o número de acordo com as suas necessidades. Para verificar as alterações novamente use:

# cat /proc/sys/fs/file-max

Usuários terão de fazer logout e login novamente para que as alterações tenham efeito. Se você quiser aplicar o limite imediatamente, você pode usar o seguinte comando:

# sysctl -p

Configurar Limites de Arquivos Abertos no Linux

Os exemplos acima, mostraram como definir limites globais, mas você pode querer aplicar limites por usuário. Para isso, como usuário root, você precisará editar o seguinte arquivo:

# vi /etc/security/limits.conf

Se você é um administrador Linux, eu sugiro que você se familiarize muito com esse arquivo e o que você pode fazer com ele. Leia todos os comentários nele, pois ele oferece grande flexibilidade em termos de gerenciamento de recursos do sistema, limitando usuários/grupos em diferentes níveis.

As linhas que deve adicionar tomam os seguintes parâmetros:

<domain> <type> <item> <value>

Aqui está um exemplo de definição de limites suaves e rígidos para o usuário marin:

## Example hard limit for max opened filesmarin hard nofile 4096## Example soft limit for max opened filesmarin soft nofile 1024

Pensamentos finais

Este breve artigo mostrou um exemplo básico de como você pode verificar e configurar limites globais e de nível de usuário para o número máximo de arquivos abertos.

Embora tenhamos apenas riscado a superfície, encorajo-o vivamente a ter um olhar mais detalhado e a ler sobre /etc/sysctl.conf e /etc/security/limits.conf e a aprender a usá-los. Eles serão de grande ajuda para você um dia.

Deixe uma resposta

O seu endereço de email não será publicado.