O profiling contínuo identifica gargalos de desempenho em aplicações Go causados por CPU, memória e I/O. Ele fornece estatísticas detalhadas divididas por nome de método, classe e número de linha, o que auxilia na otimização do código, na redução da latência, no aumento do throughput e na economia de custos. Este tópico descreve como ativar o recurso de profiling contínuo para aplicações Go no ARMS e visualizar os dados correspondentes.
Pré-requisitos
Certifique-se de que sua aplicação esteja conectada ao Application Monitoring e que o agente Go esteja atualizado para a versão 1.3.0 ou posterior. Verifique a versão do agente na página .
Ative o profiling contínuo
Faça login no console do ARMS. No painel de navegação à esquerda, escolha .
-
Na página Application List, selecione a região na barra de navegação superior e clique em nome da aplicação.
NotaOs ícones na coluna Language têm os seguintes significados:
: aplicação Java conectada ao Application Monitoring.
: aplicação Golang conectada ao Application Monitoring.
: aplicação Python conectada ao Application Monitoring.-: aplicação conectada ao Managed Service for OpenTelemetry.
Na barra de navegação superior, escolha .
-
Na seção Continuous Performance Profiling, ative o master switch e outros switches de recursos conforme necessário.

Clique em Save. As configurações entram em vigor em aproximadamente 2 minutos.
Visualize dados de profiling
Faça login no console do ARMS. No painel de navegação à esquerda, escolha .
-
Na página Application List, selecione a região na barra de navegação superior e clique em nome da aplicação.
NotaOs ícones na coluna Language têm os seguintes significados:
: aplicação Java conectada ao Application Monitoring.
: aplicação Golang conectada ao Application Monitoring.
: aplicação Python conectada ao Application Monitoring.-: aplicação conectada ao Managed Service for OpenTelemetry.
Na barra de navegação superior, escolha .
Na lista de instâncias à esquerda, selecione uma instância de destino. Em seguida, defina o intervalo de tempo dos dados à direita.
-
Na aba Search, filtre os dados e visualize a análise agregada.

Na seção Time window size (identificada como ①), selecione uma duração de snapshot e arraste o ponteiro no gráfico para definir o intervalo de tempo desejado.
Na lista suspensa (identificada como ②), selecione um tipo de dado: cpu, go heap, goroutine, mutex ou block.
-
A lista de dados do intervalo selecionado aparece na área identificada como ③. Clique em Aggregation & Analysis no canto superior direito para visualizar os detalhes do snapshot.
Análise de desempenho
-
CPU Time: dados de profiling para hotspots de CPU.

-
Allocated Memory: dados de profiling para hotspots de memória.

-
Allocations: dados de profiling para hotspots de frequência de alocação de memória. Essas informações indicam quais métodos alocam memória com maior frequência.

-
goroutine:

-
Análise de mutex
mutexContentions:

mutexDelay:

-
Análise de bloqueio
blockContentions:

blockDelay:

NotaA coluna Self mostra os recursos consumidos pelo próprio método, excluindo aqueles consumidos pelos métodos chamados por ele (filhos). Isso ajuda a identificar métodos inerentemente custosos.
A coluna Total exibe os recursos consumidos pelo método e por todos os métodos chamados. Esse valor auxilia na identificação do impacto geral de um método no consumo de recursos em toda a pilha de chamadas.
Para investigar códigos de hotspot específicos, concentre-se na coluna Self ou procure barras largas na parte inferior do gráfico de chamas. Essas barras representam a causa raiz do alto consumo nas camadas superiores da pilha de chamadas e geralmente indicam os principais gargalos de desempenho. Direcione seus esforços de otimização para esses métodos.
Lista de snapshots

-
Documentos relacionados
Use o profiling contínuo para solucionar problemas como alto uso de CPU e memória. Para mais informações, consulte os seguintes tópicos: