O que é pm.max_children?
É o número máximo de processos PHP simultâneos que o pool pode executar.
Cada processo = 1 requisição PHP ativa
Cada processo consome RAM
👉 Se passar do limite → 502 / timeout
👉 Se exagerar → swap / OOM / servidor lento
1️⃣ Regra principal (fórmula real)
pm.max_children = RAM disponível para PHP
÷
consumo médio de 1 processo PHP
Simples, mas precisa medir corretamente.
2️⃣ Descubra quanta RAM está disponível para o PHP
Passo 1 – RAM total
free -m
Exemplo:
Total: 12288 MB
Passo 2 – Reserve RAM para o sistema
Sempre reserve:
- SO + serviços: 2–3 GB
- MySQL/MariaDB: 30–40% da RAM
- Cache (Redis, OPcache): 500 MB – 1 GB
Exemplo real (12 GB RAM):
Total: 12288 MB Sistema: 2048 MB MariaDB: 4096 MB Cache/Outros: 512 MB ------------------------- Disponível PHP: ~5632 MB
3️⃣ Meça o consumo real de um processo PHP-FPM
Método correto (produção)
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
Exemplo de saída:
42 MB
📌 Em WordPress:
- PHP simples: 30–40 MB
- WooCommerce: 50–80 MB
- Sites pesados: 100+ MB
4️⃣ Calcule o pm.max_children
Usando o exemplo:
5632 MB ÷ 42 MB ≈ 134 processos
Valor seguro:
pm.max_children = 120
📌 Sempre deixe 10–15% de margem.
5️⃣ Escolha o pm correto (isso muda tudo)
🔹 ondemand (RECOMENDADO)
pm = ondemand pm.max_children = 120 pm.process_idle_timeout = 10s
✔ Menos RAM
✔ Ideal para WordPress
✔ Evita processos ociosos
🔹 dynamic
pm = dynamic pm.max_children = 120 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20
⚠️ Usa mais RAM (processos sempre ativos)
6️⃣ Ambientes com CloudLinux (LVE)
👉 O cálculo deve ser por conta, não global.
Exemplo por usuário:
- RAM LVE: 1 GB
- Processo PHP: 40 MB
1024 ÷ 40 ≈ 25
pm.max_children = 20
📌 Isso evita que um site derrube o servidor.
7️⃣ Sinais de pm.max_children mal configurado
Muito baixo
- Erros 502
server reached pm.max_children- Lentidão sob carga
Muito alto
- Swap ativo
- OOM Killer
- Servidor lento mesmo sem tráfego
8️⃣ Monitoramento em tempo real
watch -n1 "ps -ylC php-fpm --sort:rss | head"
Ver erros:
journalctl -u php-fpm
9️⃣ Exemplo final (produção WordPress)
Servidor:
- 12 GB RAM
- MariaDB 11.x
- CloudLinux
- Nginx + Apache
pm = ondemand pm.max_children = 120 pm.process_idle_timeout = 10s pm.max_requests = 500
✅ Checklist rápido
✔ RAM medida corretamente
✔ Consumo real do PHP calculado
✔ Margem de segurança aplicada
✔ pm=ondemand usado
✔ Monitoramento ativo
Clique aqui e consulte nossos planos de Gerenciamento de Servidor
FAQ:
pm.max_children e por que ele é importante?É a diretiva que define o número máximo de processos simultâneos que o PHP-FPM pode criar. Se o limite for muito baixo, os usuários enfrentarão lentidão ou erros 502/504 em picos de tráfego. Se for muito alto, o servidor pode ficar sem memória RAM e travar completamente.
A fórmula básica utilizada é:pm.max_children = (Memória RAM Disponível para o PHP) / (Consumo Médio de um Processo PHP)
Você pode usar o seguinte comando no terminal (SSH) para listar o consumo real dos processos ativos:ps -ylC php-fpm --sort:rss
A coluna RSS mostrará o valor em KBs. Geralmente, para sites WordPress, esse valor varia entre 40MB e 80MB por processo.
Não use toda a RAM do servidor. Você deve subtrair a memória usada pelo Sistema Operacional, pelo Banco de Dados (MySQL/MariaDB) e pelo Servidor Web (Nginx/Apache).
Exemplo: Em um servidor de 8GB, se o MySQL usa 4GB e o sistema 1GB, restam 3GB para o PHP.
pm.max_children está baixo demais?Você deve monitorar o log de erros do PHP-FPM (geralmente em /var/log/php-fpm.log ou similar). Se encontrar a mensagem:
“server reached pm.max_children, consider raising it”
Isso indica que o servidor atingiu o limite e está enfileirando requisições, sendo necessário aumentar o valor ou otimizar o consumo de memória do site.
static, dynamic e ondemand?static: Mantém um número fixo de processos (usa max_children o tempo todo). Ideal para servidores dedicados de alto tráfego.
dynamic: Cria processos conforme a demanda, respeitando um mínimo e máximo. É o mais equilibrado para a maioria das VPS.
ondemand: Só cria processos quando chega uma requisição. Excelente para economizar memória em servidores com muitos sites de baixo tráfego.
max_children, qual outro parâmetro ajuda a evitar vazamento de memória?recomenda ajustar o pm.max_requests (ex: 500 ou 1000). Isso força o processo PHP a reiniciar após processar um certo número de requisições, limpando qualquer “lixo” acumulado na memória (memory leaks).
Veja Mais:
Guia Definitivo de Otimização de Servidor Web Linux (2026)
Nginx vs. LiteSpeed: Qual Performa Melhor em Produção?

