Quando um servidor apresenta CPU 100% no Linux, significa que o processador está totalmente ocupado executando tarefas. Nesse cenário, o sistema pode começar a apresentar lentidão e instabilidade.
Além disso, esse tipo de problema pode afetar diretamente aplicações web, bancos de dados e serviços críticos. Consequentemente, usuários podem perceber demora no carregamento de páginas ou falhas em requisições.
Quando um servidor apresenta CPU 100% no Linux, o primeiro passo é identificar qual processo está consumindo recursos e se o problema está relacionado a carga legítima ou a um gargalo de infraestrutura. Esse tipo de análise faz parte de um diagnóstico mais amplo explicado no guia completo de otimização de performance de servidores Linux
Em alguns cenários, a CPU aparenta estar em 100%, mas o problema real está relacionado ao subsistema de armazenamento. Quando processos ficam aguardando operações de disco, o sistema pode apresentar comportamento semelhante a uma sobrecarga de CPU. Para investigar esse tipo de situação, veja também o guia sobre como usar iostat para identificar gargalos de disco no Linux.
Isso pode causar diversos problemas. Por exemplo:
- lentidão no site ou aplicação
- timeout em requisições
- falhas em processos críticos
- aumento do load average
- instabilidade geral no servidor
De forma geral, esse cenário é comum em ambientes de VPS, servidores dedicados e infraestruturas cloud. Principalmente, ele aparece quando há aumento repentino de carga ou aplicações mal otimizadas.
Entre as causas mais comuns estão:
- picos de tráfego
- consultas pesadas no banco de dados
- scripts mal otimizados
- ataques automatizados ou bots
Portanto, antes de reiniciar o servidor ou aumentar recursos, é fundamental identificar o que realmente está consumindo CPU.
Neste guia você aprenderá o que verificar primeiro quando a CPU chega a 100% no Linux.
1. Verificar o Load Average
Para entender melhor esse indicador, veja também nosso artigo sobre como interpretar load average corretamente no Linux
Primeiramente, é importante verificar o load average do servidor.
Execute:
uptime
Exemplo de saída:
load average: 4.21, 3.98, 2.65
Esses três números representam a média de processos aguardando CPU nos últimos:
- 1 minuto
- 5 minutos
- 15 minutos
Em outras palavras, eles indicam a pressão que o sistema está sofrendo.
Em seguida, compare o load com o número de CPUs disponíveis.
nproc
Se o servidor possui 4 CPUs, então:
- load 4 = uso máximo aceitável
- load 8 = gargalo severo
Portanto, se o load estiver muito maior que o número de CPUs, provavelmente existem processos sobrecarregando o servidor.
Analisar CPU isoladamente pode levar a diagnósticos incompletos. Em muitos casos, o problema real está relacionado a I/O de disco, latência de rede ou pressão de memória. Por isso, é importante realizar um diagnóstico completo de performance em servidores Linux em produção.
2. Identificar Processos que Consomem CPU
Em seguida, o próximo passo é identificar quais processos estão consumindo CPU.
O comando mais utilizado para isso é:
top
Dentro do top, pressione:
Shift + P
Assim, os processos serão ordenados pelo consumo de CPU.
Exemplo:
PID USER %CPU COMMAND
2451 www 180 php-fpm
3321 mysql 120 mysqld
Dessa forma, já é possível identificar rapidamente se o problema está relacionado a:
- scripts PHP
- banco de dados
- processos do sistema
Além disso, uma ferramenta ainda mais visual é o htop.
htop
Nesse caso, o administrador consegue visualizar o uso de CPU por núcleo e identificar facilmente processos problemáticos.
3. Listar os Processos Mais Pesados
Depois disso, vale a pena listar diretamente os processos com maior consumo de CPU.
Execute:
ps aux --sort=-%cpu | head -10
Exemplo de saída:
USER PID %CPU COMMAND
mysql 1234 95 mysqld
www 2456 80 php-fpm
Assim, fica claro qual aplicação está gerando maior carga no sistema.
Consequentemente, fica mais fácil decidir se o processo deve ser investigado, otimizado ou finalizado.
4. Verificar I/O Wait (Disco)
No entanto, CPU 100% nem sempre significa uso real de CPU.
Na prática, muitas vezes o problema está relacionado ao disco.
Verifique novamente usando:
top
Observe a linha:
%Cpu(s): 10 us, 5 sy, 0 ni, 70 id, 15 wa
O valor wa (iowait) representa o tempo que a CPU está aguardando operações de disco.
Se esse valor estiver alto, então o gargalo provavelmente está em:
- disco lento
- storage saturado
- banco de dados pesado
- backups rodando
Para investigar melhor, utilize:
iostat -x 1
Dessa forma, é possível identificar dispositivos com alto tempo de espera.
5. Verificar Processos PHP
Em muitos casos, especialmente em servidores web, o PHP é o maior consumidor de CPU.
Isso acontece frequentemente em ambientes com:
- WordPress
- Magento
- aplicações PHP customizadas
Para investigar, execute:
ps -ylC php-fpm --sort:rss
Ou então:
top -c
Assim, você consegue visualizar exatamente qual script está sendo executado.
Por exemplo, plugins mal otimizados ou loops de código podem causar uso excessivo de CPU.
6. Verificar Banco de Dados
Além disso, o banco de dados pode ser responsável por grande parte da carga no servidor.
Se o MySQL ou MariaDB estiver consumindo CPU, verifique os processos ativos.
mysqladmin processlist
Nesse caso, consultas pesadas ou mal otimizadas podem sobrecarregar o sistema.
Por exemplo, consultas sem índice podem exigir grande processamento.
Também é útil verificar o status geral:
mysqladmin status
Consequentemente, você poderá identificar se o banco de dados está sob pressão.
7. Verificar Ataques ou Bots
Por outro lado, picos de CPU também podem ser causados por tráfego automatizado.
Bots podem gerar milhares de requisições simultâneas.
Verifique conexões ativas:
ss -s
Ou:
netstat -ant | grep :80 | wc -l
Além disso, analise logs de acesso:
/var/log/nginx/access.log
/var/log/httpd/access_log
Dessa forma, é possível identificar IPs ou padrões de acesso suspeitos.
8. Verificar Cron Jobs
Em alguns casos, tarefas agendadas podem causar picos temporários de CPU.
Verifique tarefas cron do usuário:
crontab -l
Além disso, verifique tarefas globais:
/etc/cron.*
Backups automáticos, scripts de manutenção e rotinas de limpeza podem gerar alto consumo momentâneo.
9. Verificar Uso de CPU por Núcleo
Por fim, é importante verificar se o problema está concentrado em apenas um núcleo.
Isso pode indicar processos single-thread.
Use:
htop
Ou:
mpstat -P ALL 1
Assim, é possível identificar se apenas um núcleo está saturado.
Checklist Rápido (Diagnóstico em 60 segundos)
Quando ocorrer CPU 100% no Linux, siga este fluxo:
1️⃣ Verificar load average
uptime
2️⃣ Identificar processos
top
3️⃣ Listar maiores consumidores
ps aux --sort=-%cpu
4️⃣ Verificar disco
iostat -x
5️⃣ Verificar banco de dados
mysqladmin processlist
6️⃣ Verificar conexões
ss -s
A CPU alta pode estar ligada a outros gargalos do sistema. Veja também:
Conclusão
Portanto, quando ocorre CPU 100% no Linux, o mais importante é identificar rapidamente qual processo está causando o problema.
Ferramentas como:
tophtoppsiostatmysqladmin
permitem diagnosticar o problema rapidamente.
Assim, o administrador pode determinar se o gargalo está em:
- aplicação
- banco de dados
- disco
- tráfego externo
Consequentemente, é possível aplicar a correção adequada sem comprometer a estabilidade do servidor.
Se você quer entender todos os fatores que impactam desempenho em servidores modernos, recomendamos também ler nosso guia completo de performance de servidores Linux.
A CPU alta pode estar ligada a outros gargalos do sistema. Veja também:
FAQ
As causas mais comuns incluem scripts mal otimizados, consultas pesadas em banco de dados, ataques de bots e tarefas cron executando simultaneamente.
Use o comando:
top
Ou então:
ps aux –sort=-%cpu
Não necessariamente. Muitas vezes, o problema está relacionado a disco ou banco de dados.
Não completamente. Na maioria dos casos, reiniciar apenas oculta temporariamente a causa real.
Veja Mais:
Servidor Lento: Como Identificar o Gargalo
Load Average no Linux: Como Interpretar Corretamente
Performance de Servidores Linux: Guia Completo 2026
Como Usar vmstat para Achar Gargalo no Linux em Minutos
Como Achar Gargalo com Iostat: Guia Definitivo e Prático
I/O de disco servidor Linux: Como Resolver Gargalos
Iowait Alto: Causas Reais e Soluções
Swap Alto com RAM Livre: Por Que Isso Acontece e como Resolver
Guia Completo de Monitoramento Linux com vmstat, iostat e sar
Tuning de sysctl para Produção: Guia Definitivo de Performance Linux
Como Ajustar limits.conf no Linux: Guia para Alta Performance
OOM Killer e MySQL: Como Evitar que o Linux Mate seu Banco de Dados
Memory Leak Linux: Como Detectar e Corrigir
No space left on device com espaço livre? Como resolver (Guia Completo)
Como identificar processo que consome CPU no Linux (Guia Completo)
Como Limitar CPU por Processo no Linux com cgroups (Guia Completo)
Upgrade de CPU ou Otimizar? Guia Completo
RAM Cheia no Linux: O Guia Definitivo para Resolver Travamentos em 2026
Buffers e Cache: Quando Deixam de Ajudar e Viram um Problema?
Out of Memory (OOM): Causas Reais, Diagnóstico e Como Resolver
Como evitar OOM Killer Linux em Produção: Guia Definitivo 2026
Gargalo no Linux: Como Identificar se o Problema é CPU ou RAM?
Disco Lento no Linux: Guia Completo para Identificar e Resolver
Latência de Disco no Linux Alta: Causas, Diagnóstico e Soluções

