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.