Qual a diferença entre monitoramento, rastreamento e criação de perfil?

16

Vi essas três palavras aparecendo muito, mas não entendo as diferenças exatas entre elas. Por exemplo, coletar a utilização da CPU geralmente é chamada de criação de perfil e também pode cair no monitoramento de desempenho. Qual é a diferença (sutil) entre eles?

Richard
fonte

Respostas:

11

É assim que eu uso essas palavras. Outros podem ter usos adicionais ou diferentes. Dependendo do trabalho em questão, usarei os termos de maneira diferente. As equipes de desenvolvimento e operações têm necessidades diferentes de uso.

Monitorar é monitorar. Geralmente é contínuo e, de preferência, automatizado. Ferramentas de código aberto gosta Munin, Nagiose MRTGse enquadram nesta categoria. Também existem muitas ferramentas comerciais. Eu também incluiria sarexecutar continuamente nesta categoria, mas seus resultados não são normalmente monitorados. As ferramentas de monitoramento podem ser usadas para acionar alertas quando um recurso monitorado fica acima ou abaixo de um nível de acionador. Muitas ferramentas de monitoramento funcionam bem em ambientes heterogêneos.

A criação de perfil geralmente é feita em um programa específico para ver qual código está usando mais recursos. Geralmente, esse é o tempo da CPU, mas também pode incluir tempo de memória, E / S e execução (parede). Geralmente é usado para identificar o código candidato à otimização. As ferramentas de criação de perfil tendem a depender do idioma e / ou da plataforma.

Um tipo diferente de criação de perfil é feito usando logs e / ou dados de monitoramento. Esse é o perfil de uso e pode ser feito por vários motivos. Não encontrei muitas ferramentas para fazer isso.

Eu uso o rastreamento de duas maneiras diferentes. Com mais freqüência, eu rastreio rotas de rede. Dependendo das configurações de rede e firewall, uma variedade de ferramentas pode ser usada com mais ou menos sucesso. A maioria deles tem traceroute em seu nome ou descrição.

Rastreamento de programa é rastrear a execução de um programa. Isso geralmente é feito em uma situação de teste. Isso pode ser feito de várias maneiras (na minha ordem de uso e experiência):

  • Rastreamento de chamadas usando ferramentas como stracepara ver qual código é chamado. Isso pode ser útil para determinar por que um programa está falhando ou não está respondendo conforme o esperado.
  • Log de nível de rastreamento, que depende da inclusão de instruções de log apropriadas no código. A maioria dos conjuntos de registros suporta esse nível de detalhe. O registro no nível de rastreamento tende a ter uma cobertura de código ruim. Geralmente, adiciono-o conforme necessário e o deixo no código para uso futuro.
  • O rastreamento de cobertura de código registra quais partes do código foram executadas em um conjunto de testes. Isso pode ser útil na determinação de casos de teste ausentes. É difícil obter uma cobertura 100% do código. Deve ser alcançada uma cobertura de 100% dos fluxos normais.
  • Verificação de mesa: rastreando o código lendo-o. Não é muito útil em programas maiores, mas é uma boa maneira de identificar casos extremos para testes de unidade e / ou identificar possíveis problemas quando a fonte provável foi reduzida. Alguns IDEs e editores tornam relativamente fácil acompanhar uma chamada para o código de implementação.
  • Depuração ao vivo; rastreando a execução do código enquanto está sendo executado usando um depurador. É possível rastrear instruções de execução por instrução, mas se o problema for um problema de temporização, ele poderá ficar oculto. Depuradores que podem vincular código à instrução atual ajudam muito, mas podem exigir a criação de uma versão de depuração do programa.
BillThor
fonte
-1

No servidor de aplicativos SAP WEB, podemos definir essas três palavras-chave conforme mencionado abaixo

As técnicas de monitoramento, rastreamento e criação de perfil oferecidas pela Web, bem como as técnicas fornecidas por outros sistemas SAP e externos, podem ser integradas usando a arquitetura CCMS comprovada, o que pode simplificar bastante a manutenção de instalações grandes, distribuídas e heterogêneas.

Robert
fonte