Como Ajustar limits.conf no Linux: Guia para Alta Performance

🧩 PARTE 1 — INTRODUÇÃO

Como Ajustar limits.conf no Linux para Máxima Performance

Se você administra servidores Linux — seja VPS, servidor dedicado ou cloud — provavelmente já enfrentou problemas como lentidão inexplicável, falhas em conexões ou erros críticos mesmo com CPU e RAM sobrando.

Um dos principais culpados silenciosos desses problemas é a má configuração do limits.conf no Linux.

Esse arquivo controla os limites de recursos que cada usuário ou processo pode utilizar no sistema. Quando mal configurado, ele pode causar gargalos graves, como:

  • Erro “Too many open files”
  • Limite baixo de processos simultâneos
  • Quedas em aplicações web sob carga
  • Instabilidade em serviços como Nginx, Apache e MariaDB

Neste guia completo, você vai aprender:

  • O que é o limits.conf no Linux
  • Como ajustar corretamente para produção
  • Integração com systemd e kernel
  • Configuração ideal para alto tráfego
  • Erros comuns que derrubam servidores

Ajustar limites no Linux é essencial para estabilidade e performance. Para entender o contexto completo, veja o guia de performance de servidores Linux.

Os limites do sistema devem ser ajustados com base no uso real. Veja também:


🧩 PARTE 2 — O QUE É limits.conf NO LINUX

O arquivo:

/etc/security/limits.conf

define os limites de recursos do sistema operacional para usuários e processos.

Ele atua como uma camada de controle para evitar que um único processo consuma todos os recursos do servidor.

Principais parâmetros

🔹 nofile

Número máximo de arquivos abertos simultaneamente.

👉 Impacta diretamente:

  • Nginx
  • Apache
  • MariaDB
  • PHP-FPM

🔹 nproc

Número máximo de processos por usuário.


🔹 stack

Tamanho da pilha de memória por processo.


🔹 core

Controle de geração de arquivos de dump.


Por que isso é crítico?

Em ambientes modernos de alto tráfego, os valores padrão são extremamente baixos.

Isso significa que, sem ajuste, seu servidor pode:

❌ Travar com poucos acessos
❌ Limitar conexões simultâneas
❌ Gerar gargalos invisíveis


🧩 PARTE 3 — PROBLEMAS REAIS CAUSADOS POR MÁ CONFIGURAÇÃO

Um servidor pode parecer saudável:

  • CPU em 30%
  • RAM sobrando
  • Disco normal

Mas ainda assim apresentar falhas.

🚨 Erro clássico

Too many open files

Esse erro acontece quando o limite de arquivos abertos (nofile) é atingido.


Impacto direto

  • Sites saem do ar
  • APIs param de responder
  • Banco de dados falha conexões
  • Painéis como DirectAdmin ficam lentos

Cenário comum

Servidor com alto tráfego:

  • 500+ conexões simultâneas
  • múltiplos processos PHP
  • banco de dados ativo

Sem ajuste de limits.conf no Linux → gargalo inevitável.

Limites inadequados podem causar gargalos no sistema. Confira como melhorar a performance de servidores Linux.


🧩 PARTE 4 — CONFIGURAÇÃO CORRETA DO limits.conf

Agora vamos ao que realmente importa: configurar corretamente o limits.conf no Linux.

📌 Configuração base recomendada

* soft nofile 65535
* hard nofile 65535* soft nproc 65535
* hard nproc 65535* soft stack 8192
* hard stack 16384

📌 Configuração por serviço (produção)

nginx soft nofile 200000
nginx hard nofile 200000 
apache soft nofile 100000
apache hard nofile 100000 
mysql soft nofile 200000
mysql hard nofile 200000

🔥 O que isso resolve?

  • Permite mais conexões simultâneas
  • Evita gargalos em aplicações web
  • Melhora escalabilidade
  • Prepara o servidor para picos

🧩 PARTE 5 — INTEGRAÇÃO COM SYSTEMD (OBRIGATÓRIO)

Apenas configurar o limits.conf no Linux não é suficiente em sistemas modernos.

O systemd pode sobrescrever esses limites.

📌 Arquivo:

/etc/systemd/system.conf

Configuração:

DefaultLimitNOFILE=200000
DefaultLimitNPROC=65535

Aplicar:

systemctl daemon-reexec

⚠️ Erro comum

Muitos administradores ajustam o limits.conf no Linux e esquecem o systemd.

Resultado:

❌ Configuração não funciona
❌ Limites continuam baixos


🧩 PARTE 6 — AJUSTES NO KERNEL (SYSCTL)

Para suportar os novos limites, o kernel também precisa ser ajustado.

📌 Arquivo:

/etc/sysctl.conf

Configuração recomendada:

fs.file-max = 2097152
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

Aplicar:

sysctl -p

Benefícios:

  • Suporte a mais conexões
  • Melhor performance de rede
  • Redução de gargalos TCP

🧩 PARTE 7 — VALIDAÇÃO DAS CONFIGURAÇÕES

Depois de ajustar o limits.conf no Linux, é essencial validar.

Ver limite atual:

ulimit -n

Ver limites de um processo:

cat /proc/$(pidof nginx)/limits

Ver limite global:

cat /proc/sys/fs/file-max

Ajustar o limits.conf é apenas parte da otimização. Veja a estratégia completa de otimização de servidores Linux.

🧩 PARTE 8 — OTIMIZAÇÃO PARA DIRECTADMIN

Se você usa DirectAdmin, o ajuste do limits.conf no Linux é ainda mais importante.

Por quê?

Porque o ambiente geralmente inclui:

  • Nginx (proxy)
  • Apache
  • PHP-FPM
  • MariaDB

Configuração ideal:

nginx soft nofile 200000
apache soft nofile 100000
mysql soft nofile 200000

Resultado:

  • Painel mais rápido
  • Sites mais estáveis
  • Melhor performance geral

🧩 PARTE 9 — ERROS COMUNS (CRÍTICO)

❌ Não reiniciar serviços

Mudanças não são aplicadas.


❌ Ignorar systemd

Configuração não funciona.


❌ Valores baixos

Servidor limitado artificialmente.


❌ Não ajustar kernel

Limite não escala.


🧩 PARTE 10 — COMO O limits.conf LINUX AFETA PERFORMANCE REAL

Quando falamos de performance em servidores Linux, muitos administradores focam apenas em CPU, RAM e disco. Porém, o limits.conf linux atua em uma camada mais profunda — controlando diretamente como os processos interagem com o sistema operacional.

🔍 Entendendo o impacto real

Cada conexão em um servidor web gera:

  • descritores de arquivos (file descriptors)
  • processos ou threads
  • uso de stack

Se o limits.conf linux estiver mal configurado:

  • conexões são recusadas
  • processos não são criados
  • serviços travam silenciosamente

Configurações de limite afetam diretamente o desempenho. Veja como melhorar a performance do servidor Linux.


📊 Exemplo prático (alto tráfego)

Imagine um servidor com:

  • 1000 usuários simultâneos
  • Nginx + PHP-FPM
  • MariaDB ativo

Cada conexão pode consumir:

  • 1–2 file descriptors (ou mais)
  • 1 processo/thread

👉 Sem ajuste no limits.conf linux, você rapidamente atinge o limite.


⚠️ Resultado

Mesmo com hardware disponível:

❌ Erros intermitentes
❌ Timeout em requisições
❌ Queda de performance sob carga


🧩 PARTE 11 — DIFERENÇA ENTRE SOFT E HARD LIMITS

No limits.conf linux, você sempre verá dois tipos de limites:

🔹 Soft limit

É o limite atual aplicado ao usuário.

Pode ser alterado dinamicamente sem reboot.


🔹 Hard limit

É o limite máximo permitido.

Somente root pode alterar.


📌 Exemplo:

* soft nofile 65535
* hard nofile 200000

🧠 Estratégia recomendada

Para produção:

  • Soft = valor operacional
  • Hard = margem de crescimento

🔥 Boas práticas

  • Nunca deixe hard muito baixo
  • Sempre mantenha espaço para scaling
  • Use valores progressivos

🧩 PARTE 12 — LIMITES POR USUÁRIO (OTIMIZAÇÃO AVANÇADA)

Um erro comum ao configurar limits.conf linux é usar apenas * (global).

Isso pode gerar problemas em ambientes multi-serviço.


📌 Configuração ideal segmentada

nginx soft nofile 200000
nginx hard nofile 200000
mysql soft nofile 200000
mysql hard nofile 200000
apache soft nofile 100000
apache hard nofile 100000

🎯 Benefícios

  • Evita competição por recursos
  • Prioriza serviços críticos
  • Melhora estabilidade

🧠 Dica profissional

MariaDB e Nginx geralmente precisam de limites mais altos que Apache.


🧩 PARTE 13 — RELAÇÃO COM FILE DESCRIPTORS

O parâmetro mais importante do limits.conf linux é o nofile.

🔍 O que são file descriptors?

No Linux, tudo é tratado como arquivo:

  • conexões de rede
  • sockets
  • arquivos físicos
  • pipes

📌 Cada conexão usa FD

Se você tem:

  • 10.000 conexões simultâneas
    → precisa de milhares de file descriptors

⚠️ Gargalo clássico

Too many open files

Esse erro é causado diretamente por má configuração do limits.conf linux.


🔧 Solução

Aumentar:

* soft nofile 65535
* hard nofile 65535

Ou mais, dependendo do cenário.


🧩 PARTE 14 — INTEGRAÇÃO COM NGINX E ALTO TRÁFEGO

O limits.conf linux precisa estar alinhado com o Nginx.

📌 Configuração ideal

worker_rlimit_nofile 200000;

📌 E também:

worker_connections 65535;

🧠 Fórmula prática

Capacidade máxima ≈

worker_processes × worker_connections

⚠️ Sem limits.conf correto

O Nginx ignora esses valores.


🧩 PARTE 15 — IMPACTO NO PHP-FPM

PHP-FPM cria múltiplos processos.

Cada processo:

  • usa file descriptors
  • consome memória
  • cria concorrência

📌 Configuração recomendada:

rlimit_files = 100000

🔥 Problema comum

Sem ajuste no limits.conf linux:

❌ PHP-FPM trava
❌ Scripts falham
❌ Lentidão em WordPress


🧩 PARTE 16 — IMPACTO NO MARIADB

Banco de dados é extremamente sensível a limites.

📌 Parâmetro crítico:

open_files_limit = 200000

🔍 O que acontece sem ajuste?

  • tabelas não abrem
  • queries falham
  • conexões caem

🧠 Integração obrigatória

O valor do MariaDB depende do limits.conf linux.


🧩 PARTE 17 — COMO ESCALAR PARA CLOUD E VPS

Ambientes cloud exigem atenção especial.

📌 Cenário VPS

  • limites mais restritos
  • compartilhamento de recursos

📌 Estratégia

  • usar valores moderados (65535)
  • monitorar consumo
  • escalar gradualmente

📌 Cenário dedicado

  • pode usar valores agressivos
  • foco em throughput

🧩 PARTE 18 — MONITORAMENTO AVANÇADO

Após configurar o limits.conf linux, monitore continuamente.

📌 Ferramentas úteis:

lsof
ss -s
cat /proc/sys/fs/file-nr

🔍 O que observar:

  • uso de file descriptors
  • conexões abertas
  • picos de carga

🧩 PARTE 19 — HARDENING E SEGURANÇA

O limits.conf linux também ajuda na segurança.

📌 Benefícios:

  • evita abuso de recursos
  • limita ataques DoS internos
  • protege o sistema

⚠️ Estratégia

  • limites altos, mas controlados
  • monitoramento ativo

🧩 PARTE 20 — CHECKLIST FINAL (PRODUÇÃO)

Antes de considerar concluído:

✔ limits.conf configurado
✔ systemd ajustado
✔ sysctl aplicado
✔ serviços reiniciados
✔ validação feita


🧩 PARTE 21 — CONCLUSÃO FINAL

O ajuste do limits.conf linux é uma das otimizações mais subestimadas no mundo Linux.

Enquanto muitos focam apenas em hardware, é essa configuração que define o verdadeiro limite operacional do seu servidor.

Se você trabalha com:

  • VPS
  • Servidor dedicado
  • Cloud
  • DirectAdmin
  • cPanel

então dominar o limits.conf linux não é opcional — é essencial.

Para garantir estabilidade e alto desempenho, é essencial otimizar o sistema como um todo. Consulte o guia de como otimizar servidores Linux.

FAQ — limits.conf Linux

O que é limits.conf no Linux?

O limits.conf linux é um arquivo de configuração localizado em /etc/security/limits.conf que define limites de recursos do sistema para usuários e processos, como número de arquivos abertos (nofile) e quantidade de processos (nproc)

Para que serve o limits.conf no Linux?

O limits.conf linux serve para controlar o consumo de recursos por processos, evitando que um único serviço comprometa o desempenho do servidor.

Como resolver o erro “Too many open files” no Linux?

Para resolver esse erro, é necessário aumentar o parâmetro nofile no limits.conf linux, além de ajustar o systemd e o kernel (sysctl.conf) para suportar mais descritores de arquivos.

Qual o valor ideal de nofile no limits.conf?

O valor ideal no limits.conf linux depende do ambiente:
VPS pequeno: 65535
Servidores de alto tráfego: 100000 a 200000

Qual a diferença entre soft e hard limits?

No limits.conf linux:
Soft limit é o limite atual usado pelo sistema
Hard limit é o limite máximo permitido

Preciso reiniciar o servidor após alterar o limits.conf?

Não é obrigatório reiniciar o servidor, mas é necessário reiniciar os serviços (como Nginx, Apache e MariaDB) para aplicar as mudanças do limits.conf linux.

limits.conf sozinho resolve problemas de performance?

Não. O limits.conf linux precisa ser combinado com:
configurações do systemd
ajustes no kernel (sysctl.conf)
tuning dos serviços

Onde fica o arquivo limits.conf no Linux?

O arquivo principal do limits.conf linux está localizado em:
/etc/security/limits.conf

Veja Mais:

Performance de Servidores Linux: Guia Completo 2026
Swap Alto com RAM Livre: Por Que Isso Acontece e como Resolver
Servidor Lento: Como Identificar o Gargalo
I/O de disco servidor Linux: Como Resolver Gargalos
CPU 100% no Linux: O Que Verificar Primeiro no Servidor

Como Usar vmstat para Achar Gargalo no Linux em Minutos
Load Average no Linux: Como Interpretar Corretamente
Como Achar Gargalo com Iostat: Guia Definitivo e Prático
Iowait Alto: Causas Reais e Soluções
Guia Completo de Monitoramento Linux com vmstat, iostat e sar
Tuning de sysctl para Produção: Guia Definitivo de Performance Linux
OOM Killer e MySQL: Como Evitar que o Linux Mate seu Banco de Dados
Memory Leak Linux: Como Detectar e Corrigir
No space left on device com espaço livre? Como resolver (Guia Completo)
Como identificar processo que consome CPU no Linux (Guia Completo)
Como Limitar CPU por Processo no Linux com cgroups (Guia Completo)
Upgrade de CPU ou Otimizar? Guia Completo
RAM Cheia no Linux: O Guia Definitivo para Resolver Travamentos em 2026
Buffers e Cache: Quando Deixam de Ajudar e Viram um Problema?
Out of Memory (OOM): Causas Reais, Diagnóstico e Como Resolver
Como evitar OOM Killer Linux em Produção: Guia Definitivo 2026
Gargalo no Linux: Como Identificar se o Problema é CPU ou RAM?
Disco Lento no Linux: Guia Completo para Identificar e Resolver
Latência de Disco no Linux Alta: Causas, Diagnóstico e Soluções