Interaja com o gráfico de rastreio em pilhas sobrepostas
O Cloud Profiler apresenta dados de criação de perfis através de gráficos de chamas. Para uma introdução conceptual, consulte Gráficos de chamas.
O gráfico de rastreio em pilhas sobrepostas é composto por frames. Cada frame representa uma função no serviço:
A largura de um frame corresponde ao respetivo consumo da métrica que está a ser analisada. Por exemplo, o frame superior representa todo o serviço e consome 100% da métrica que está a ser analisada. Por conseguinte, este frame é apresentado com a largura total.
Por predefinição, a cor da moldura corresponde, sempre que possível, ao pacote da função. Se as informações do pacote não estiverem disponíveis, como no caso do Node.js, os nomes dos ficheiros de origem são usados para colorir os blocos de funções. Numa pilha de chamadas, uma alteração na cor do bloco significa uma transição de um pacote para outro. Pode alterar a forma como as molduras são coloridas. Para mais informações, consulte o artigo Modo de cor.
O gráfico de chamas mostra uma ou mais pilhas de chamadas com os valores calculados como média num conjunto de perfis:
- Cada perfil individual representa os dados recolhidos uma vez por minuto a partir de uma única instância do serviço configurado numa única zona do Compute Engine. O período de recolha de um perfil varia consoante o tipo de perfil. Consulte Recolha de perfis para mais informações.
- É calculada a média de um máximo de 250 perfis. Se existirem mais de 250 perfis disponíveis, 250 deles são selecionados aleatoriamente como um conjunto de amostras.
- O frame superior, ou "raiz", num gráfico de chamas representa o serviço completo. No frame "root", existe outro frame ou conjunto de frames que compõem a segunda linha no gráfico. Cada um destes frames codificados por cores é uma chamada de nível superior feita pelo serviço. Abaixo de cada um desses frames de funções coloridos, encontra-se outro conjunto de frames de funções, cada um responsável por alguma parte do recurso do frame acima. A hierarquia de frames de funções no gráfico representa a sequência de chamadas, e a largura de um frame representa a contribuição dessa função ou método para o consumo de recursos.
Por exemplo, o gráfico do criador de perfis da memória dinâmica consumida para o docdemo-service mostra que o serviço chama diferentes frames de nível superior, um deles é a função main
do tempo de execução do Go. A largura destes frames de nível superior mostra que a maioria da memória dinâmica é consumida pela pilha de chamadas que envolvem o tempo de execução do Go main
, main
, allocOnce
e allocImpl
específicos da aplicação:
O frame raiz apresenta informações de consumo de métricas.
Passar o cursor do rato sobre um frame
Quando mantém o ponteiro sobre um frame no gráfico de chamas, é apresentada uma sugestão de ferramenta do frame com informações adicionais sobre o frame:
- Nome da função
- Nome do ficheiro da função
- Utilização absoluta e utilização em percentagem
Nas informações de consumo de métricas, o prefixo total indica que o valor da métrica e a percentagem se referem a uma função e aos respetivos elementos subordinados. Por outro lado, o prefixo self indica que o valor da métrica e a percentagem são para a função com o consumo dos respetivos filhos excluído.
A caixa de diálogo também inclui os seguintes botões:
- Foco: foca o gráfico na função da frame atual.
- Mostrar rastreios: adiciona um filtro para mostrar apenas os rastreios que incluem a função deste frame.
- Mostrar histórico: abre a vista do histórico da função da moldura.
Neste exemplo, a sugestão mostra que a função runtime.main
está localizada no ficheiro /usr/local/go/src/runtime/proc.go
. As informações de consumo de métricas mostram que runtime.main
e os respetivos filhos consomem 54,73 MiB de memória, ou cerca de 98% da memória total consumida pelo programa:
Selecionar uma moldura
Quando seleciona um frame, o gráfico de chamas é redesenhado com esse frame apresentado a toda a largura e as cores mais elevadas na pilha de chamadas são esbatidas. A seleção de um quadro não altera nenhuma definição, apenas altera a forma como o gráfico é apresentado. Para reverter para a vista original, selecione a frame raiz (superior).
No exemplo seguinte, o ponteiro
está num frame pequeno e é difícil ver a pilha de chamadas. A sugestão
identifica (*huffmanBitWriter).write
como a função de frame:
Depois de selecionar o frame, o gráfico é redesenhado, tornando a pilha de chamadas mais visível:
O que se segue?
- Filtre o gráfico de rastreio em pilhas sobrepostas.
- Focar o gráfico de chamas numa função.
- Veja tendências históricas.
- Compare perfis.