CPU 100% no Linux: O Que Verificar Primeiro no Servidor

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:

  • top
  • htop
  • ps
  • iostat
  • mysqladmin

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

O que causa CPU 100% no Linux?

As causas mais comuns incluem scripts mal otimizados, consultas pesadas em banco de dados, ataques de bots e tarefas cron executando simultaneamente.

Como identificar o processo que consome CPU?
Use o comando:
top
Ou então:
ps aux –sort=-%cpu

CPU 100% sempre significa problema de CPU?

Não necessariamente. Muitas vezes, o problema está relacionado a disco ou banco de dados.

Reiniciar o servidor resolve o problema?
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