Servidor lento, mas sem uso de CPU: o que está errado?

Um dos problemas mais confusos para administradores de sistemas é quando o servidor está lento mesmo com a CPU quase ociosa. Muitos acreditam que, se o processador não está em uso, o servidor deveria estar rápido — mas na prática, a CPU raramente é o gargalo.

Neste artigo, você vai entender as causas reais da lentidão, como diagnosticar corretamente e o que fazer para resolver de forma definitiva.


🚨 CPU baixa não significa servidor saudável

A CPU só executa tarefas quando dados já estão disponíveis. Se o servidor está esperando disco, memória, rede ou banco de dados, a CPU fica parada — e o site continua lento.

Os principais gargalos são:

  • I/O de disco
  • Memória insuficiente
  • Banco de dados mal configurado
  • PHP-FPM travado
  • DNS lento
  • Rede congestionada

🔍 1. Gargalo de I/O de disco (principal causa)

Esse é o motivo mais comum de servidor lento com CPU baixa.

Como identificar

Atenção para:

  • %util próximo de 100%
  • await alto (acima de 20ms já indica problema)
  • CPU com wa (I/O wait) elevado no top

Se o campo wa estiver alto, o servidor está esperando o disco.

Causas comuns

  • VPS com storage compartilhado saturado
  • Logs gigantes (Apache, Nginx, MySQL)
  • Backup rodando em horário de pico
  • Banco de dados sem cache adequado

🧠 2. Falta de memória RAM (mesmo sem swap alto)

Pouca RAM faz o sistema acessar o disco o tempo todo.

Verifique

Sinais de alerta:

  • available muito baixo
  • Swap sendo usada constantemente

Se si e so aparecem com frequência → problema de memória.

📌 Em VPS pequenas, zram ou zswap ajudam muito a reduzir lentidão. Veja clicando aqui Diferença entre swap, zram e zswap: quando usar cada um


🗄️ 3. MySQL / MariaDB travando tudo

Quando o banco está lento, todo o servidor parece lento.

Diagnóstico rápido

Ou:

Problemas comuns:

  • Queries sem índice
  • Muitas conexões simultâneas
  • innodb_buffer_pool_size mal configurado
  • WordPress sem cache de objeto

📌 MariaDB mal ajustado gera lentidão mesmo com CPU livre.


🐘 4. PHP-FPM mal dimensionado

Configuração errada do PHP-FPM causa fila silenciosa.

Verifique

Erros comuns:

  • pm.max_children muito baixo → requisições aguardando
  • pm.max_children alto demais → falta de RAM + swap

Cada processo PHP consome memória, não CPU.

📌Veja clicando aqui PHP-FPM: Como Calcular pm.max_children Corretamente


🌐 5. DNS lento ou mal configurado

DNS lento trava:

  • Sites
  • Atualizações
  • Plugins WordPress
  • APIs externas

Teste

Se demorar antes de conectar:

Use DNS rápidos e confiáveis (Cloudflare, Google, Quad9).


📡 6. Problemas de rede e latência

Mesmo com CPU livre, o servidor pode estar esperando resposta externa.

Observe:

  • Perda de pacotes
  • Latência instável

🔒 7. Processos bloqueados (estado D)

Processos presos em I/O não usam CPU.

Ou:

Se houver muitos processos em estado D, o problema é disco ou storage.


⏱️ 8. Crons, backups e tarefas ocultas

Tarefas mal configuradas causam lentidão sem aparecer no uso de CPU.

Logs gigantes ou backups em horário comercial são vilões comuns.


✅ Checklist rápido de diagnóstico

iostat -x 1
free -h
vmstat 1
top (wa e estado D)
mysqladmin processlist
✔ Testar DNS e rede
✔ Ver crons e logs


🧠 Conclusão

Se o servidor está lento e a CPU está baixa, o problema quase sempre é:

  • I/O de disco saturado
  • Falta de memória
  • Banco de dados mal configurado
  • PHP-FPM mal dimensionado
  • DNS ou rede lenta

👉 CPU não mede saúde do servidor.