Avaliar o desempenho do app

Este documento mostra como configurar e usar o Cloud Profiler. Você fará o download de um programa Go de amostra, além de executá-lo com a criação de perfil ativada e usar a interface do Profiler para explorar os dados coletados.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  4. No painel de navegação do console do Google Cloud, selecione APIs e serviços, clique em Ativar APIs e serviços e ative a API Cloud Profiler:

    Acesse as configurações da API Profiler

  5. Se a mensagem API ativada for exibida, quer dizer que a API já está ativada. Caso contrário, clique no botão Ativar.

  6. Para abrir o Cloud Shell, na barra de ferramentas do Console do Google Cloud, clique em Ativar o Cloud Shell:

    Ative o Cloud Shell.

    Após alguns instantes, uma sessão do Cloud Shell é aberta no Console do Google Cloud:

    Sessão do Cloud Shell.

Crie o perfil de um programa

O programa de amostra, main.go, está no repositório golang-samples no GitHub. Para consegui-lo, recupere o pacote de amostras do Go:

git clone https://github.com/GoogleCloudPlatform/golang-samples.git

A recuperação do pacote leva algum tempo para ser concluída.

Crie o perfil do código

Vá para o diretório do código de amostra do Profiler no pacote recuperado:

cd golang-samples/profiler/profiler_quickstart

O programa main.go cria uma carga de trabalho com uso intensivo da CPU para fornecer dados ao criador de perfil. Inicie o programa e deixe-o em execução:

 go run main.go

Esse programa foi projetado para carregar a CPU enquanto ele é executado. Ele é configurado para usar o Profiler, que coleta dados de criação de perfil do programa durante a execução dele e os salva periodicamente.

Alguns segundos após iniciar o programa, você verá a mensagem profiler has started. Depois de quase um minuto, mais duas mensagens serão exibidas:

 successfully created profile CPU
 start uploading profile

Elas indicam que um perfil foi criado e enviado ao projeto do Cloud Storage. O programa continuará exibindo as últimas duas mensagens a cada minuto enquanto estiver sendo executado.

Se você receber uma mensagem de erro de permissão negada depois de iniciar o serviço, consulte Erros com a configuração do seu projeto do Google Cloud.

Interface do Profiler

Alguns instantes depois de iniciar o aplicativo, o Profiler exibe os dados iniciais do perfil. A interface tem vários controles e um gráfico de chama para você explorar os dados de criação de perfil:

Interface do Profiler com o exemplo de código.

Além dos controles de tempo, há opções que permitem escolher o conjunto de dados de perfil a serem usados. Ao criar um perfil de vários aplicativos, use o Serviço para selecionar a origem dos dados do perfil. Com o Tipo de perfil, é possível escolher o tipo de dados de perfil que será exibido. As opções Nome da zona e Versão permitem restringir a exibição aos dados das zonas do Compute Engine ou às versões do aplicativo. O Peso permite que você selecione perfis capturados durante os períodos de pico de consumo de recursos.

Para refinar como o gráfico em degradê exibe os perfis que você selecionou para analisar, adicione filtros. Na captura de tela anterior, a barra de filtro mostra um filtro. Essa opção de filtro é Metric, e o valor do filtro é CPU time.

Como explorar os dados

O gráfico de chama exibe as pilhas de chamadas do programa. Ele representa cada função com um quadro. A largura do quadro representa a proporção de consumo de recursos por essa função. O primeiro quadro representa o programa inteiro. Ele sempre mostra todo o consumo de recursos. Esse frame também lista quantos perfis têm a média calculada no gráfico.

O programa de amostra não tem um conjunto complexo de pilhas de chamadas. Na imagem acima, você vê cinco frames:

  • O frame cinza representa tudo que é executável, responsável por todos os recursos consumidos.
  • O frame main verde é o runtime.main do Go.
  • O frame main laranja é a rotina main do programa de amostra.
  • O frame busyloop laranja é uma rotina chamada a partir do main da amostra.
  • O frame main.load laranja é uma rotina chamada a partir do main da amostra.

Com o seletor, você filtra funções que correspondem a algum nome e realiza outras tarefas. Por exemplo, se houver uma biblioteca padrão de funções de utilitário, será possível removê-las do gráfico. Remova também pilhas de chamadas originadas de um determinado método ou simplifique o gráfico de outras maneiras. O aplicativo main.go é simples, então não há muito o que filtrar.

Mesmo para um aplicativo simples, os filtros permitem ocultar quadros menos importantes, para que você possa visualizar melhor os quadros que mais lhe interessam. Por exemplo, na captura de tela da criação de perfil do código de amostra, o frame cinza é um pouco maior que o primeiro frame main abaixo dele. Por quê? Será que está acontecendo algo que não é aparente de imediato porque a pilha de chamadas main consome uma porcentagem muito grande de recursos? Para ver o que está acontecendo fora da rotina main do aplicativo, adicione um filtro que oculte a pilha de chamadas da rotina main. Somente 0,227% do consumo de recursos ocorre fora de main:

Como ocultar pilhas no programa de exemplo.

Para mais informações sobre filtragem e outras maneiras de analisar os dados de criação de perfil, consulte Selecionar os perfis para análise.

A seguir

Para informações gerais sobre criação de perfil, consulte os documentos a seguir:

Saiba como executar o agente do Cloud Profiler em: