Cpustat - monitora a utilização da CPU através de processos de execução no Linux

Cpustat - monitora a utilização da CPU através de processos de execução no Linux

Cpustat é um poderoso programa de medida de desempenho do sistema para Linux, escrito usando a linguagem de programação Go. Ele tenta revelar a utilização e a saturação da CPU de maneira eficaz, usando o método de saturação e erros de utilização (uso) (uma metodologia para analisar o desempenho de qualquer sistema).

Extrai amostras de frequência mais alta de todos os processos que estão sendo executados no sistema e depois resume essas amostras em uma frequência mais baixa. Por exemplo, pode medir todos os processos a cada 200ms e resumir essas amostras a cada 5 segundos, incluindo valores de min/média/max para certas métricas.

Leia sugerida: 20 ferramentas de linha de comando para monitorar o desempenho do Linux

Cpustat produz dados de duas maneiras possíveis: uma lista de texto puro do intervalo de resumo e um painel de rolagem colorido de cada amostra.

Como instalar o cpustat no Linux

Você deve ter Vá (Golang) instalado em seu sistema Linux para usar cpustat, Clique no link abaixo para seguir as etapas de instalação de Golang, ou seja, se você não o tiver instalado:

  1. Instale o Golang (VO Programação Language) no Linux

Depois de instalar Ir, digite o vai pegar Comando abaixo para instalá -lo, este comando instalará o cpustat binário em seu Gobin variável:

# vá buscar github.com/uber-common/cpustat 

Como usar o cpustat no Linux

Quando o processo de instalação é concluído, execute cpustat O seguinte com privilégios de raiz usando o comando sudo que é se você está controlando o sistema como um usuário sem raiz, caso contrário, você receberá o erro como mostrado:

$ $ Gobin/cpustat Este programa usa a interface do NetLink TaskStats, para que deve ser executado como raiz. 

Observação: Para correr cpustat bem como todos os outros programas GO que você instalou em seu sistema como qualquer outro comandos, inclua Gobin variável em seu CAMINHO variável de ambiente. Abra o link abaixo para aprender como definir a variável de caminho no Linux.

  1. Aprenda a definir suas variáveis ​​de caminho $ permanentemente no Linux

É assim cpustat funciona; o /Proc O diretório é consultado para obter a lista atual de IDs de processo para cada intervalo e:

  • Para cada PID, leia /proc/pid/stat, Em seguida, calcule a diferença de amostra anterior.
  • Caso seja um novo PID, leia /proc/pid/cmdline.
  • Para cada PID, envie uma mensagem de NetLink para buscar os estados de tarefas, calcule a diferença em relação à amostra anterior.
  • buscar /proc/stat Para obter as estatísticas gerais do sistema.

Novamente, cada intervalo de sono é ajustado para explicar a quantidade de tempo consumido buscando todas essas estatísticas. Além disso, cada amostra também registra o tempo que levou para escalar cada medição pelo tempo decorrido real entre as amostras. Isso tenta explicar atrasos no próprio Cpustat.

Quando executado sem argumentos, cpustat Exibirá o seguinte por padrão: intervalo de amostragem: 200ms, intervalo de resumo: 2s (10 amostras), mostrando os 10 principais procs, filtro de usuário: todos, filtro PID: tudo como mostrado na captura de tela abaixo:

$ sudo $ gobin/cpustat 
Cpustat - Monitor de uso da CPU Linux

A partir da saída acima, a seguir, são apresentados os significados das métricas de resumo em todo o sistema exibidas antes dos campos:

  • USR - Modo Min/AVG/Max Tempo de execução como uma porcentagem de uma CPU.
  • sys - Modo Min/AVG/Max System Run Time como uma porcentagem de uma CPU.
  • legal - Modo Min/AVG/Max Modo de baixa prioridade Tempo de execução como uma porcentagem de uma CPU.
  • parado - Modo Min/AVG/Max Tempo de execução como uma porcentagem de uma CPU.
  • Iowait - tempo de atraso min/avg/max aguardando disco io.
  • podr - contagem de processos min/avg/max em um estado executável (o mesmo que a média de carga).
  • pblock - Min/avg/max contagem de processos bloqueados no disco io.
  • pstart - Número de processos/tópicos iniciados neste intervalo de resumo.

Ainda da saída acima, para um determinado processo, as diferentes colunas significam:

  • nome - Nome do processo comum de/proc/pid/stat ou/proc/pid/cmdline.
  • PID - ID do processo, também chamado de "tgid".
  • min - Amostra mais baixa de tempo+tempo do sistema para o PID, medido de/proc/pid/stat. Escala é uma porcentagem de uma CPU.
  • máx - A amostra mais alta do tempo do usuário+sistema para este PID, também medido de/proc/pid/stat.
  • USR - Tempo médio do usuário para o PID durante o período de resumo, medido de/proc/pid/stat.
  • sys - Tempo médio do sistema para o PID durante o período de resumo, medido de/proc/pid/stat.
  • legal - Indica o valor atual “Nice” para o processo, medido de/proc/pid/stat. Mais alto significa "melhor".
  • runq - Tempo o processo e todos os seus tópicos gastos executados, mas esperando para correr, medidos a partir de TaskStats via NetLink. Escala é uma porcentagem de uma CPU.
  • Iow - Tempo o processo e todos os seus threads gastos bloqueados pelo disco io, medido a partir de TaskStats via NetLink. A escala é uma porcentagem de uma CPU, a média do intervalo de resumo.
  • trocar - Tempo o processo e todos os seus tópicos gastos esperando para serem trocados, medidos a partir de TaskStats via NetLink. A escala é uma porcentagem de uma CPU, a média do intervalo de resumo.
  • VCX e ICX - Número total de troca de contexto voluntária pelo processo e todos os seus threads durante o intervalo de resumo, medidos a partir de TaskStats via NetLink.
  • RSS - Valor RSS atual obtido de/proc/pid/stat. É a quantidade de memória que esse processo está usando.
  • ctime - Soma do usuário+SYS CPU Time consumido por esperado por crianças que saíram durante este intervalo de resumo, medido de/proc/pid/stat.

Observe que os processos infantis de longa execução podem frequentemente confundir essa medição, porque o tempo é relatado apenas quando o processo infantil sai. No entanto, isso é útil para medir o impacto de trabalhos de cron e verificações de saúde frequentes, onde o tempo da CPU é frequentemente consumido por muitos processos infantis.

  • Thrd - Número de threads no final do intervalo de resumo, medido de/proc/pid/stat.
  • Sam - Número de amostras para este processo incluído no intervalo de resumo. Processos que começaram ou saíram recentemente podem ter sido visíveis para menos amostras do que o intervalo de resumo.

O comando a seguir exibe os 10 principais processos do usuário raiz em execução no sistema:

$ sudo $ gobin/cpustat -u root 
Encontre processos de execução do usuário root

Para exibir a saída em um modo terminal sofisticado, use o -t Bandeira da seguinte maneira:

$ sudo $ gobin/cpustat -u roo -t 
Uso do processo de execução do usuário root

Para visualizar o número X superior de processos (o padrão é 10), você pode usar o -n Flag, o comando a seguir mostra os 20 principais processos Linux em execução no sistema:

$ sudo $ gobin/cpustat -n 20 

Você também pode escrever o perfil da CPU em um arquivo usando o -cpuprofile opção como segue e depois use o comando CAT para visualizar o arquivo:

$ sudo $ gobin/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.TXT 

Para exibir informações de ajuda, use o -h Bandeira da seguinte maneira:

$ sudo $ gobin/cpustat -h 

Encontre informações adicionais do repositório Cpustat Github: https: // github.com/uber-common/cpustat

Isso é tudo! Neste artigo, mostramos como instalar e usar o cpustat, uma ferramenta útil de medida de desempenho do sistema para o Linux. Compartilhe seus pensamentos conosco através da seção de comentários abaixo.