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

Conteúdo

utilitário principal que mostra o uso atual da CPU para cada processo em execução

a top O utilitário mostra o uso atual da CPU para cada procedimento em execução, mas e se eu 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 uma nota rodapé, se você ainda não o instalou, a htop Utilitário (na foto acima) é muito mais agradável de usar do que o padrão top.

A resposta trivial: use gráficos do seu provedor de nuvem

Esta solução é, com muito, o mais fácil de usar, mas não estará disponível para todos. Se você estiver na AWS, CloudWatch torna mais fácil monitorar o uso da CPU.

Desde o CloudWatch Management Console, Escolher “Métricas” e, em seguida, visualizar as métricas para EC2. A métrica “CPUTILIZAÇÃO” mostra o uso médio da CPU:

No CloudWatch Management Console, selecionar "Métricas" e, em seguida, veja as métricas para EC2.

O uso médio da CPU é medido em incrementos de 5 minutos, mas você pode ativar o monitoramento estendido para a instância e aumentá-lo em incrementos de 1 minuto. Apesar disto, fazer isso tem um custo adicional. Além disso, você pode definir alarmes facilmente para quando o uso da CPU for muito alto.

Se você estiver no mecanismo de pesquisa do Google Cloud Platform, um gráfico aparece na guia “Supervisão” quando você seleciona uma instância.

Gráfico que aparece no Google Cloud Platform na guia "Supervisão" quando uma instância é selecionada.

Azure tem Monitor de Azure, mostrando informações equivalentes:

Azure Monitor exibe informações semelhantes ao Google Cloud Platform.

Para a maioria dos outros provedores de nuvem, eles provavelmente também têm um gráfico como este.

Usando / proc / loadavg

A melhor maneira de fazer isso nativamente é ver onde top obtém suas informações de. /proc/loadavg contém médias de 1 minuto, 5 minutos e 15 minutos. Você pode entrar com cat

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 algum awk Magia:

cat / proc / loadavg | awk '{imprimir $1","$2","$3}' >> cpu.csv

Conecte isso a um cron trabalho que é executado a cada minuto, girar logs com logrotate, e você terá um monitor de CPU manipulado. Você pode importar o arquivo CSV para o Excel, onde será fácil traçar o uso médio 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ê está executando a cada minuto, não é realmente necessário imprimir as médias de 5 e 15 minutos, porque pode calcular computacionalmente.

Instalar sysstat

a sar O utilitário é excelente para monitorar o desempenho do sistema. Está incluído como parte de sysstat, que provavelmente não é instalado por padrão em seu sistema. Você precisará obtê-lo do gerenciador de pacotes de sua distribuição. Para sistemas baseados em Debian como Ubuntu, seria:

sudo apt-get install sysstat

A seguir, habilite editando /etc/default/sysstat e estabelecendo “HABILITADO” na verdade.

Ao fazer isso, monitora seu sistema e gera um relatório a cada 10 minutos, girando-os depois de uma semana. Você pode modificar este comportamento editando o crontab sysstat em /etc/cron.d/sysstat, ou alterando a configuração de rotação no sysstat configurações em /etc/sysstat/sysstat.

Você pode gerar um relatório em tempo real com o seguinte comando:

sar -u 1 3

sysstat irá coletar dados de uso da CPU em segundo plano 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 sargrafo, mostrando um bom gráfico:

sargraph mostra um gráfico de uso da CPU.

Você também pode usar utilitários de linha de comando para traçar gráficos como este, O que ttyplot, mas nenhum deles chega perto de ser tão fácil de usar (e tão atraente) como uma GUI. A linha de comando é melhor neste, os gráficos são mais agradáveis.

Monit pode avisá-lo se o uso da CPU for muito alto

Logotipo da Monit

Monit é um pacote de monitoramento de código aberto para Unix que verifica o status 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 para configurá-lo para obter mais informações.

Observe que o CloudWatch realiza a mesma coisa fora da caixa com alarmes e pode operar em várias métricas diferentes, não apenas no uso da CPU.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.