Avaliar o desempenho do app
Este documento mostra como configurar e usar o Cloud Profiler. Você vai usar o Cloud Shell para fazer o download de um programa Go de amostra, executá-lo com a criação de perfil ativada e usar a interface do Profiler para analisar os dados coletados.
Se você planeja criar perfis de aplicativos em execução fora do Google Cloud, é necessário realizar algumas etapas de configuração que não são discutidas neste documento. Para mais informações sobre essas etapas, consulte Como criar perfis de aplicativos em execução fora do Google Cloud Google Cloud.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Ative a API Cloud Profiler.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis. - Para abrir o Cloud Shell, na barra de ferramentas do Google Cloud console, clique em
Ativar o Cloud Shell:

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

Crie o perfil de um programa
O programa de amostra, main.go, está no repositório golang-samples no GitHub. Para acessá-lo, no Cloud Shell, execute o seguinte comando para recuperar 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
No Cloud Shell, acesse o diretório do exemplo de código 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. No Cloud Shell, execute o seguinte comando para iniciar o programa e deixá-lo 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 Google Cloud projeto.
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:

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 filter_list 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
mainverde é oruntime.maindo Go. - O frame
mainlaranja é a rotinamaindo programa de amostra. - O frame
busylooplaranja é uma rotina chamada a partir domainda amostra. - O frame
main.loadlaranja é uma rotina chamada a partir domainda 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:

Para mais informações sobre como filtrar e outras maneiras de analisar os dados de criação de perfil, consulte Selecionar os perfis a serem analisados.
A seguir
Para informações gerais sobre a criação de perfil, consulte os seguintes documentos:
- Visão geral do Cloud Profiler
- Conceitos da criação de perfil
- Leia nossos recursos sobre o DevOps e conheça o programa de pesquisa DORA.
- Como criar perfis de aplicativos Go
- Como criar perfis de aplicativos Java
- Como criar perfis de aplicativos Node.js
- Como criar perfis de aplicativos Python
- Como criar perfis de aplicativos em execução fora do Google Cloud Google Cloud