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:
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.
Azure tem Monitor de Azure, mostrando informações equivalentes:
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:
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
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.