Descubra Como Monitorizar o Uso da CPU em Linux: O Guia Definitivo!

Como administrador de sistemas, é crucial ter o controlo sobre o uso da CPU. Afinal, a performance dos seus servidores, máquinas virtuais e hipervisores depende disso. Para garantir que não existam processos zumbis ou aplicações a consumir todo o poder da CPU, é essencial saber como monitorizar este recurso vital.

Felizmente, existem várias formas de verificar o uso da CPU na linha de comandos do Linux, cada uma com a sua maneira única de apresentar as informações necessárias.

Métodos Comuns para Verificar o Uso da CPU em Linux

1. O Comando top: O Clássico Insubstituível

Um dos métodos mais populares e reconhecidos por qualquer administrador de Linux é o comando top. Este comando simples fornece não só informações sobre a CPU, mas também sobre a RAM e o desempenho geral do sistema.

O top atualiza automaticamente a cada 5 segundos, tornando-se uma ferramenta indispensável para uma visão “superior” do sistema. Além disso, apresenta detalhes sobre quais processos estão em execução e a quantidade de CPU e RAM que cada um consome.

Analisando a Saída do Comando Top

Embora a saída do comando possa parecer sobrecarregada, aqui está o que deve prestar atenção:

  • PID: ID do processo, uma identificação simples de cada tarefa em execução.
  • USER: Nome do utilizador que possui o processo em questão.
  • PR: Prioridade da tarefa.
  • NI: Valor “nice” da tarefa, onde valores negativos indicam maior prioridade e positivos menor.
  • %CPU: Porcentagem de CPU utilizada pela tarefa desde a última atualização.
  • TIME+: Duração que a tarefa tem utilizado a CPU.
  • COMMAND: Nome do comando que gerou a tarefa.

Adicionalmente, o comando top oferece filtros práticos:

  • U: Exibe todos os processos de um utilizador específico.
  • M: Classifica os processos em execução pela quantidade de memória utilizada.
  • P: Classifica os processos pela quantidade de CPU utilizada.
  • I: Oculta todos os processos inativos.

💡 Uma alternativa interessante é o comando htop, que oferece uma interface mais bonita e amigável.

2. O Poder do Comando sar

O comando sar não só monitoriza o uso da CPU em intervalos regulares, mas também salva essas informações em um ficheiro, funcionando de maneira semelhante ao top.

Interpretando a Saída do Comando Sar

A saída do sar é mais direta, apresentando colunas como:

  • Hora: Indica o horário em que a amostra foi capturada.
  • CPU: Mostra o número do núcleo da CPU ou ALL para a média de todos os núcleos.
  • %User: Percentagem de tempo gasto em aplicações a nível do utilizador.
  • %Nice: Percentagem de tempo gasto em aplicações com prioridade “nice”.
  • %system: Tempo gasto executando processos a nível de sistema.
  • %iowait: Tempo que a CPU ficou inativa com um pedido de I/O pendente.
  • %steal: Em máquinas virtuais, tempo que a CPU virtual esteve inativa enquanto a real servia outra máquina.
  • %idle: Percentagem de tempo que a CPU ficou inativa sem pedidos de I/O.

3. O Comando vmstat: Informação Detalhada

Se procura uma visão abrangente, o comando vmstat é a escolha certa. Ele reporta informações sobre processos, memória, troca, I/O, interrupções e atividade da CPU.

Compreendendo a Saída do Comando Vmstat

A saída inclui detalhes importantes, como:

  • procs: Representa o número de processos em execução, onde ‘r’ são os que estão ativos e ‘b’ os que estão em espera.
  • memory: Informações sobre a memória, como swap, memória livre, buffers e cache.
  • io: Representa blocos de informação em trânsito.
  • system: Detalhes sobre interrupções e mudanças de contexto.
  • cpu: Visão geral do que está a ser feito com o tempo da CPU.

4. O Comando mpstat: Monitorização de CPU Específica

O mpstat pode não estar instalado por padrão, mas faz parte do pacote ‘sysstat’, que é necessário para a sua utilização. Ele fornece um instantâneo das estatísticas de uso da CPU, podendo ser ajustado para mostrar informações sobre cada CPU do servidor.

Decifrando a Saída do Comando Mpstat

As informações incluem:

  • all: Representa todas as CPUs, enquanto 0 ou 1 indicam diferentes núcleos.
  • %usr: Percentagem de utilização da CPU a nível do utilizador.
  • %nice: Percentagem de utilização da CPU com prioridade “nice”.
  • %sys: Percentagem de utilização a nível do sistema.
  • %iowait: Tempo que a CPU esteve inativa com pedidos de I/O pendentes.
  • %irq e %soft: Percentagens de tempo gasto em interrupções de hardware e software.
  • %steal e %guest: Percentagens de tempo de espera e execução de processadores virtuais.
  • %idle: Percentagem de tempo que a CPU ficou inativa.

5. O Comando iostat: Monitorização de Dispositivos de I/O

O iostat fornece estatísticas de dispositivos de entrada/saída, monitorizando não só o uso da CPU, mas também a utilização e performance do disco.

Analisando a Saída do Comando Iostat

As informações incluem:

  • CPU: Percentagens de utilização por nível (utilizador, nice, sistema, iowait, steal, idle).
  • Dispositivo: Nome do dispositivo ou partição.
  • tps: Número de transferências por segundo.
  • Blk_read/s e Blk_wrtn/s: Quantidade de dados lidos e escritos por segundo.
  • Blk_read e Blk_wrtn: Total de blocos lidos e escritos.

Representações Gráficas do Uso da CPU

Ainda que esteja a trabalhar na linha de comandos, existem opções para representações gráficas do uso da CPU:

1. ttyload: Gráficos Simples e Eficazes

Disponível para Debian e distribuições baseadas, o ttyload oferece um gráfico de asteriscos que representa as médias de uso da CPU em snapshots de 1 minuto, 5 minutos e 15 minutos, utilizando diferentes cores para facilitar a visualização.

2. s-tui: Uma Aplicação Interativa para Monitorização da CPU

Embora não seja um comando, o s-tui é uma aplicação Python de código aberto que fornece informações detalhadas sobre a CPU. Permite navegar entre diferentes opções de exibição, incluindo temperatura, frequência e informações por núcleo, tudo de forma intuitiva.

Conclusão: Escolha o Comando Certo Para Monitorizar a CPU

Como se pode ver, existem várias opções para obter informações sobre a CPU, dependendo da abordagem que o utilizador deseja tomar. O uso de comandos não se limita apenas à monitorização; eles são frequentemente integrados em scripts que automatizam ações específicas, de acordo com as necessidades do administrador.

Artigos Relacionados