Gerencie o uso da CPU no Linux

Analisando o desempenho da CPU no Linux: Guia de diagnóstico

Analisando o desempenho da CPU no Linux: Guia de diagnóstico

A Central Processing Unit (CPU) é o cérebro do seu computador, responsável por executar a maioria dos cálculos e instruções. Quando o desempenho do seu sistema Linux parece lento ou você suspeita de problemas na CPU, algumas ferramentas e comandos podem ajudar a diagnosticar a situação. Este guia abrangente irá te mostrar como analisar o desempenho da CPU utilizando o terminal.

Sintomas de problemas de desempenho da CPU

  • Lentidão geral do sistema: Aplicativos demoram para abrir, arquivos levam tempo para copiar e o sistema parece responder com atraso.
  • Uso elevado da CPU: Processos consomem uma porcentagem significativa da capacidade da CPU mesmo quando o sistema parece ocioso.
  • Superaquecimento: O computador fica excessivamente quente, e as ventoinhas podem operar em velocidade máxima constantemente.
  • Travamentos ou congelamentos: Em casos extremos, problemas na CPU podem levar a instabilidade do sistema.

Ferramentas de diagnóstico da CPU

O Linux oferece diversas ferramentas poderosas para monitorar e analisar o desempenho da CPU:

  • top: Exibe uma visão dinâmica em tempo real dos processos em execução no sistema, ordenados por uso da CPU (padrão) ou memória.
  • htop: Uma versão interativa e colorida do top, que facilita a visualização e o gerenciamento de processos. Geralmente precisa ser instalado (sudo apt-get install htop ou o equivalente na sua distribuição).
  • vmstat: Reporta informações sobre processos, memória, paginação, I/O de bloco, interrupções e atividade da CPU.
  • mpstat: Reporta estatísticas de utilização da CPU para cada processador individualmente. Geralmente faz parte do pacote sysstat (sudo apt-get install sysstat).
  • lscpu: Exibe informações detalhadas sobre a arquitetura da CPU.

Passos para analisar o desempenho da CPU

  1. Monitorando o Uso em Tempo Real com top ou htop:Abra o terminal e execute top ou htop. Observe as seguintes colunas:
    • %CPU: A porcentagem de tempo da CPU que o processo está utilizando.PID: O ID do processo.USER: O usuário proprietário do processo.COMMAND: O comando que iniciou o processo.
    Identifique processos que estejam consistentemente consumindo uma alta porcentagem da CPU. Isso pode indicar um aplicativo com problemas, um processo em loop ou até mesmo malware. Exemplo de saída do top:
top - 15:00:00 up 1 day,  3:22,  1 user,  load average: 0.10, 0.15, 0.12
Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.0 us,  1.0 sy,  0.0 ni, 93.0 id,  1.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8175648 total,  3276580 free,  3054780 used,  1844288 buff/cache
KiB Swap:  2097152 total,  2097152 free,        0 used.   504536 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1234 user      20   0 1500m  500m  300m R  50.0  6.1   2:30.55 problematic_app
 5678 user      20   0  800m  200m  100m S  10.0  2.4   1:15.20 another_app

Neste exemplo, o processo com PID 1234 (problematic_app) está utilizando 50% da CPU.

  1. Analisando a Atividade da CPU com vmstat:

Execute vmstat 1 para obter atualizações a cada segundo. Observe as colunas us (tempo gasto por processos de usuário), sy (tempo gasto pelo kernel) e id (tempo ocioso da CPU). Valores altos em us ou sy e baixos em id podem indicar um gargalo na CPU.

Exemplo de saída do vmstat 1:

procs -----------memory---------- ---swap-- -----io---- -system-- --------cpu--------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  3276080   1848   504532    0    0     0     2   15   20  5  1  94  0  0
 0  0      0  3276108   1848   504532    0    0     0     0   12   18  6  1  93  0  0
 2  0      0  3276068   1848   504536    0    0     0     0   18   25  8  2  90  0  0

Neste exemplo, a CPU está ociosa na maior parte do tempo (id alto).

  1. Verificando o Uso por Core com mpstat:

Execute mpstat -P ALL 1 para visualizar a utilização de cada núcleo da CPU em tempo real. Isso pode ajudar a identificar se um único núcleo está sobrecarregado ou se a carga está distribuída.

Exemplo de saída do mpstat -P ALL 1:

Linux 5.10.0-10-amd64 (hostname)   03/24/25    15:05:00        _x86_64_        (4 CPU)

15:05:01     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest %gnice   %idle
15:05:01     all    6.00    0.00    1.25    0.25    0.00    0.25    0.00    0.00   0.00   92.25
15:05:01       0    7.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   0.00   92.00
15:05:01       1    5.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   0.00   94.00
15:05:01       2    6.00    0.00    1.00    1.00    0.00    1.00    0.00    0.00   0.00   91.00
15:05:01       3    6.00    0.00    2.00    0.00    0.00    0.00    0.00    0.00   0.00   92.00

A linha all mostra a média de utilização de todos os núcleos, enquanto as linhas 0, 1, 2, 3 mostram a utilização de cada núcleo individualmente.

  1. Verificando as Especificações da CPU com lscpu:

Execute lscpu para obter informações detalhadas sobre a arquitetura da sua CPU, incluindo o número de núcleos, threads por núcleo, modelo, frequência e cache. Essas informações podem ser úteis para entender as capacidades do seu processador.

Exemplo de saída do lscpu (parcial):

Architecture:            x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:              Little Endian
CPU(s):                  4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):               1
Model name:            Intel(R) Core(TM) i5-XXXX CPU @ 2.50GHz
CPU MHz:                 2499.998
CPU max MHz:             2500.0000
CPU min MHz:             800.0000

Solucionando problemas de alto uso da CPU no Linux

  • Identifique o Processo Problemático: Use top ou htop para encontrar o processo que está consumindo muitos recursos.
  • Encerre o Processo (com cautela): Se o processo não for essencial, você pode tentar encerrá-lo com o comando kill PID (substitua PID pelo ID do processo). Use kill -9 PID como último recurso, pois isso não permite que o processo salve seu estado.
  • Investigue o Aplicativo: Se um aplicativo específico estiver causando alto uso da CPU, verifique se há atualizações disponíveis ou se há configurações que possam otimizar o desempenho.
  • Verifique por Malware: Um alto uso inesperado da CPU pode ser um sinal de atividade maliciosa. É raro, mas pode acontecer. Execute uma verificação com um software antivírus/antimalware para Linux.
  • Monitore a Temperatura: Superaquecimento pode levar a throttling (redução da velocidade da CPU para evitar danos), causando lentidão. Certifique-se de que a ventilação do seu computador esteja adequada e que as ventoinhas estejam funcionando corretamente.

Conclusão

Analisar o desempenho da CPU no Linux utilizando as ferramentas do terminal é fundamental para diagnosticar problemas de lentidão e garantir que seu sistema esteja funcionando de maneira eficiente. Ao monitorar o uso da CPU, identificar processos problemáticos e investigar as causas do alto consumo de recursos, você pode tomar as medidas necessárias para otimizar o desempenho do seu sistema.

Emanuel Negromonte Autor
Autor
Jornalista especialista em Linux a mais de 20 anos. Fundador do SempreUpdate e entusiasta do software livre.