Como monitorar o uso da CPU no Linux ao longo do tempo

O principal utilitário exibe o uso atual da CPU para cada processo em execução, mas e se você quisesse monitorar isso ao longo do tempo e exibi-lo em um gráfico? Existem alguns utilitários para isso se o seu provedor de nuvem ainda não tiver um.
Como observação, se você ainda não o instalou, o utilitário htop (ilustrado acima) é muito mais agradável de usar do que o padrão superior.
A solução trivial: use os gráficos do seu provedor de nuvem
Esta solução é de longe a mais fácil de usar, mas não estará disponível para todos. Se você estiver na AWS, o CloudWatch torna o monitoramento do uso da CPU muito fácil.
No CloudWatch Management Console, você seleciona “ Metrics ” e, em seguida, veja as métricas para EC2. A “ CPUUtilization ” métrica exibe sua utilização média da CPU:
Sua utilização média da CPU é medida em incrementos de 5 minutos, mas você pode ativar o monitoramento estendido para a instância e aumentá-lo para incrementos de 1 minuto. Fazer isso tem um custo extra. Você também pode definir alarmes facilmente para quando o uso da CPU também ficar muito alto.
Se você estiver no Google Cloud Platform, um gráfico aparecerá sob “ Monitoramento ” guia ao selecionar uma instância.

O Azure tem o Azure Monitor, que exibe informações semelhantes:
Para a maioria dos outros provedores de nuvem, eles provavelmente terão um gráfico como este também.
Usando / proc / loadavg
A melhor maneira de fazer isso nativamente é ver de onde o top obtém suas informações. / proc / loadavg contém médias de 1 minuto, 5 minutos e 15 minutos. Você pode registrá-lo com o gato
cat / proc / loadavg / 1,71 1,32 1,38 2/97 6429
Você pode usar isso para gerar um gráfico, imprimindo cada linha em um arquivo CSV separado por vírgulas, usando um pouco da magia do awk:
cat / proc / loadavg | awk '' > > cpu. csv
Ligue isso a um cron job executado a cada minuto, gire os logs com logrotate e você terá um monitor de CPU equipado com Jerry. Você pode importar o arquivo CSV para o Excel, onde será fácil representar graficamente a utilização média da CPU em um gráfico de linha.
Observe que o comando acima imprime as médias de 1 minuto, 5 minutos e 15 minutos. Se você estiver executando a cada minuto, não é realmente necessário imprimir as médias de 5 e 15 minutos, porque você pode descobrir isso computacionalmente.
Instale o sysstat
O utilitário sar é ótimo para monitorar o desempenho do sistema. Ele é incluído como parte do sysstat, que provavelmente não é instalado por padrão em seu sistema. Você terá que obtê-lo com o gerenciador de pacotes da sua distro. Para sistemas baseados em Debian como Ubuntu, seria:
sudo apt-get install sysstat
Em seguida, ative-o editando / etc / default / sysstat e definindo “ ENABLED ” como verdadeiro.
Isso monitora seu sistema e gera um relatório a cada 10 minutos, alternando-os após uma semana. Você pode modificar esse comportamento editando o crontab sysstat em /etc/cron.d/sysstat ou alterando as configurações de rotação nas configurações sysstat em / etc / sysstat / sysstat.
Você pode gerar um relatório em tempo real com o seguinte comando:
sar -u 1 3
sysstat coletará dados de segundo plano de uso da CPU a cada minuto, salvando-os em / var / log / sysstat /. Você pode então importar esses dados para análise, usando um programa de planilha ou uma ferramenta personalizada como o sargrafo, que exibe um bom gráfico:

Você também pode usar utilitários de linha de comando para plotar gráficos como este, como ttyplot, mas nenhum deles chega perto de ser tão fácil de usar (e tão bonito) quanto um GUI. A linha de comando é melhor neste caso — os gráficos são melhores.
Monit pode alertá-lo se o uso da CPU for muito alto

Monit é um pacote de monitoramento de código aberto para Unix que verifica a saúde do seu servidor e pode ser configurado para enviar notificações se o uso da CPU do seu servidor se tornar perigosamente alto. Leia nosso guia de configuração para saber mais.
Observe que o CloudWatch consegue a mesma coisa prontamente com alarmes e pode operar em várias métricas diferentes, não apenas no uso da CPU.
Nenhum comentário