Meça o desempenho da app
Este documento mostra como configurar e usar o Cloud Profiler. Vai usar o Cloud Shell para transferir um programa Go de exemplo, executá-lo com a criação de perfis ativada e, em seguida, usar a interface do Profiler para explorar os dados capturados.
Se planear criar perfis de aplicações que estão a ser executadas fora do Google Cloud, tem de realizar alguns passos de configuração que não são abordados neste documento. Para ver informações acerca destes passos, consulte o artigo Criar perfis de aplicações em execução fora Google Cloud.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Para abrir o Cloud Shell, na Google Cloud barra de ferramentas da consola, clique em
Ativar Cloud Shell:
Após alguns momentos, é aberta uma sessão do Cloud Shell na Google Cloud consola:
- A moldura cinzenta representa todo o ficheiro executável, que representa 100% dos recursos que estão a ser consumidos.
- A moldura verde
main
é o Goruntime.main
. - A moldura
main
laranja é a rotinamain
do programa de amostra. - A moldura laranja
busyloop
é uma rotina chamada a partir domain
do exemplo. - A moldura laranja
main.load
é uma rotina chamada a partir domain
do exemplo. - Vista geral do Cloud Profiler
- Conceitos de criação de perfis
- Leia os nossos recursos sobre DevOps e explore o programa de investigação da DORA.
- Criação de perfis de aplicações Go
- Criar perfis de aplicações Java
- Criação de perfis de aplicações Node.js
- Criar perfis de aplicações Python
- Criação de perfis de aplicações em execução fora Google Cloud
Obtenha um programa para criar perfis
O programa de exemplo, main.go
, encontra-se no repositório golang-samples
no
GitHub. Para o obter, no Cloud Shell, execute o seguinte comando
para aceder ao pacote de exemplos de Go:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
A obtenção do pacote demora alguns momentos a ser concluída.
Analise o código
No Cloud Shell, aceda ao diretório do exemplo de código do Profiler no pacote obtido:
cd golang-samples/profiler/profiler_quickstart
O programa main.go
cria uma carga de trabalho intensiva da CPU para fornecer dados ao
analisador de desempenho. No Cloud Shell, execute o seguinte comando para iniciar o programa e deixe-o em execução:
go run main.go
Este programa foi concebido para carregar a CPU à medida que é executado. Está configurado para usar o Profiler, que recolhe dados de criação de perfis do programa à medida que é executado e os guarda periodicamente.
Alguns segundos após iniciar o programa, vê a mensagem
profiler has started
. Dentro de cerca de um minuto, são apresentadas mais duas mensagens:
successfully created profile CPU
start uploading profile
Estas mensagens indicam que foi criado um perfil e carregado para o seu projeto do Cloud Storage. O programa continua a emitir as duas últimas mensagens, cerca de uma vez por minuto, durante o tempo de execução.
Se receber uma mensagem de erro de autorização recusada após iniciar o serviço, consulte a secção Erros com a configuração do Google Cloud projeto.
Interface do gerador de perfis
Alguns momentos após iniciar a aplicação, o Profiler apresenta os dados do perfil iniciais. A interface oferece uma variedade de controlos e um gráfico de chamas para explorar os dados de criação de perfis:
Além dos controlos de tempo, existem opções que lhe permitem escolher o conjunto de dados do perfil a usar. Quando cria perfis de várias aplicações, usa o Serviço para selecionar a origem dos dados dos perfis. O Tipo de perfil permite-lhe escolher o tipo de dados do perfil a apresentar. O Nome da zona e a Versão permitem restringir a apresentação aos dados das zonas do Compute Engine ou das versões da aplicação. Peso permite-lhe selecionar perfis capturados durante o pico de consumo de recursos.
Para refinar a forma como o gráfico de chamas apresenta os perfis que selecionou para analisar,
adicione filtros. Na captura de ecrã anterior, a barra de filtros
filter_list mostra
um filtro. Esta opção de filtro é Metric
e o valor do filtro é CPU time
.
Explorar os dados
O gráfico de chamas apresenta as pilhas de chamadas do programa. O gráfico de chamas representa cada função com uma moldura. A largura da moldura representa a proporção do consumo de recursos por essa função. A moldura superior representa o programa completo. Este frame mostra sempre 100% do consumo de recursos. Este frame também indica quantos perfis são calculados em média neste gráfico.
O programa de exemplo não tem um conjunto complicado de pilhas de chamadas; na captura de ecrã anterior, vê 5 frames:
O seletor de filtros permite-lhe, por exemplo, filtrar funções que correspondam a um determinado nome. Por exemplo, se existir uma biblioteca padrão de funções de utilidade,
pode removê-las do gráfico. Também pode remover sequências de chamadas
originadas num determinado método ou simplificar o gráfico de outras formas.
A aplicação main.go
é simples, pelo que não há muito a
filtrar.
Mesmo para uma aplicação simples, os filtros permitem-lhe ocultar frames desinteressantes para que possa ver mais claramente os frames interessantes. Por exemplo, na captura de ecrã de criação de perfis do código de exemplo, a moldura cinzenta é ligeiramente maior do que a primeira moldura main
abaixo. Porquê? Existe algo mais
a acontecer que não é imediatamente aparente porque a main
pilha de chamadas
consome uma percentagem tão esmagadora dos recursos?
Para ver o que está a ocorrer fora da rotina main
da aplicação,
adicione um filtro que oculte o rastreio de pilha da rotina main
.
Apenas 0,227% do consumo de recursos ocorre fora do main
:
Para mais informações sobre a filtragem e outras formas de explorar os dados de criação de perfis, consulte o artigo Selecione os perfis a analisar.
O que se segue?
Para informações gerais sobre a criação de perfis, consulte os seguintes documentos: