DEV Community

Cover image for Como reduzi em até 70% o tempo de carregamento do WordPress otimizando pools do PHP-FPM e usando Redis
Marcos Vilela
Marcos Vilela

Posted on

Como reduzi em até 70% o tempo de carregamento do WordPress otimizando pools do PHP-FPM e usando Redis

Durante um processo de troubleshooting e tuning em um ambiente WordPress auto-hospedado, tive a oportunidade de aplicar ajustes de desempenho que resultaram em ganhos expressivos de tempo de carregamento, redução de uso de memória e queda drástica nas consultas ao banco de dados.

Neste post, compartilho os dados comparativos antes e depois dos ajustes nos pools dinâmicos do PHP-FPM e a ativação de cache de objetos com Redis.


Cenário Inicial

O ambiente era um WordPress migrado para um VPS com NGINX + PHP-FPM + MariaDB. O plugin Query Monitor foi utilizado para medir desempenho nas páginas do painel.

Dashboard WP – Antes dos ajustes:

  • Tempo de geração da página: 1,3350s
  • Memória: 66,1 MB
  • Total de queries: 85

Etapa 1: Ajuste de Pools Dinâmicos (PHP-FPM)

Ajustei os valores de configuração do PHP-FPM, trocando de pm = ondemand para pm = dynamic com valores mais equilibrados para nosso workload:

pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
Enter fullscreen mode Exit fullscreen mode

Resultados:

  • Tempo caiu para 1,2431s
  • Memória levemente reduzida para 64,7 MB
  • Queries: 87 (estável)

Insight: Apesar do tempo de resposta ter caído pouco, houve mais controle no uso de memória. Ainda assim, o gargalo de performance seguia no banco de dados.


Etapa 2: Ativação do Redis como Cache de Objetos

Instalei o Redis no servidor e ativei o plugin Redis Object Cache no WordPress.

Resultados após o Redis:

  • Tempo de geração da página: 0,3982s
  • Memória: 12,4 MB
  • Total de queries: 12
  • Cache hit ratio: 96,0%

Comparativo final: Dashboard WP

- Tempo de geração:
  Antes dos Pools: 1,3350s
  Após Pools: 1,2431s
  Após Redis: 0,3982s
  → Redução total: -70,2%

- Memória:
  Antes: 66,1 MB → Após Redis: 12,4 MB
  → Redução total: -81%

- Total de queries:
  Antes: 85 → Após Redis: 12
  → Redução total: -86%
Enter fullscreen mode Exit fullscreen mode

Conclusão

Esse processo mostrou claramente a importância de:

  • Ajustar corretamente os pools do PHP-FPM para o perfil de carga.
  • Utilizar cache de objetos persistente, especialmente em WordPress com painel e plugins pesados.

As mudanças não exigiram refatoração de código nem migração de infraestrutura — apenas boas práticas de configuração e cache.


Dica final

Se você está enfrentando lentidão no seu WordPress, verifique:

  1. Como está o uso de memória por processo PHP?
  2. O banco de dados está sendo sobrecarregado com queries repetidas?
  3. O Redis pode ser integrado como cache de objetos?

Esses passos podem te ajudar a alcançar ganhos parecidos com os que tive.

Top comments (0)