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
