CPU ociosa com sistema lento. Esse é um clássico de produção — e quase nunca é CPU 😄
Quando a CPU está ociosa, mas o sistema está lento, o gargalo geralmente está esperando algo.
Vamos direto ao ponto, do jeito prático que sysadmin gosta.
O que significa “CPU ociosa e sistema lento”
Se a CPU está baixa, mas tudo demora:
- requisições web
- login SSH
- comandos simples (
ls,df) - páginas WordPress abrindo devagar
👉 o sistema não está processando, está bloqueado esperando recurso.
1️⃣ I/O Wait (o vilão nº 1)
A CPU aparece “livre”, mas está esperando disco.
Como identificar
top
Ou:
vmstat 1
Olhe para:
wa(wait) acima de 5–10% = alerta- load average alto com CPU baixa = clássico I/O wait
Causas comuns
- SSD/NVMe compartilhado (overselling)
- RAID mal configurado
- MySQL fazendo flush pesado
- swap/zram mal ajustado
Confirmação
iostat -x 1
Se ver:
%utilperto de 100%awaitalto
👉 gargalo de disco confirmado
2️⃣ Memória insuficiente (sem swap ≠ sem problema)
Mesmo com RAM “livre”, o kernel pode estar sofrendo.
Verifique:
free -h
Problemas típicos:
- Sem swap → OOM silencioso ou travadas
- Swap demais → latência absurda
- ZRAM/ZSWAP mal dimensionado
Sintoma clássico
- CPU baixa
- load médio/alto
- sistema “congelando” por segundos
3️⃣ Processos bloqueados (estado D)
Processos presos em I/O.
ps aux | awk '{print $8}' | sort | uniq -c
Se aparecer muitos processos em:
D
👉 eles estão esperando disco, rede ou filesystem.
4️⃣ Gargalo de rede (parece CPU, mas não é)
Muito comum em:
- VPS oversold
- storage remoto
- NFS / backup ativo
Testes rápidos
ss -s ping -c 20 gateway
Olhe:
- retransmissões
- latência inconsistente
- filas de socket grandes
5️⃣ MySQL/MariaDB travando tudo
Muito comum em WordPress.
Mesmo com CPU baixa:
- queries lentas
- flush de InnoDB
- locks de tabela
Verifique:
mysqladmin processlist
Ou:
SHOW ENGINE INNODB STATUS\G
Sinais:
- muitos
Waiting for table metadata lock log_sys->mutexalto- buffer pool pequeno demais
6️⃣ Load alto com CPU baixa = threads presas
Load ≠ CPU.
Load alto pode significar:
- processos esperando I/O
- fila de tarefas bloqueadas
- kernel congestionado
Confirmação
uptime
Depois:
top
Compare:
- load average
%id(idle)
Load alto + idle alto = gargalo externo à CPU.
Checklist rápido de diagnóstico
Em produção, siga essa ordem:
top→ verwae loadiostat -x 1→ discofree -h→ memória / swapps aux | grep D→ processos bloqueadosss -s→ rede- MySQL (
processlist, slow query)
Frase para guardar
CPU ociosa não significa sistema saudável.
Normalmente significa que o sistema está esperando algo que você não está olhando.
FAQ
Porque a CPU pode estar esperando outros recursos, como disco, memória ou rede. O gargalo mais comum é I/O wait, onde os processos ficam bloqueados aguardando operações de leitura ou escrita no disco.
Utilize comandos como top, vmstat e iostat. Se o campo wa estiver alto ou o %util do disco próximo de 100%, o gargalo está no subsistema de armazenamento.
Não. Load average mede processos ativos e bloqueados. É comum ter load alto com CPU ociosa quando processos estão presos esperando I/O, swap ou filesystem.
Sim. O kernel pode estar fazendo cache pressure ou matando processos silenciosamente. Além disso, ausência total de swap pode gerar travamentos momentâneos em picos de uso.
Com certeza. Consultas lentas no MySQL/MariaDB, locks de tabela ou flush excessivo do InnoDB podem deixar o sistema lento mesmo com CPU baixa.
Monitorando métricas corretas: I/O wait, latência de disco, memória real, swap, processos em estado D e tempo de resposta do banco de dados — não apenas uso de CPU.
[Precisa de ajuda com outro problema?
Nossa equipe está disponível 24 horas por dia, 7 dias por semana .]
Veja Mais:
Processos Zumbis: O que são e como limpar a tabela de processos
OOM Killer no Linux: Por que o MySQL é morto e como evitar
SSH seguro além de mudar a porta
Como bloquear acesso de país com ConfigServer Firewall (CSF)

