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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Para abrir o Cloud Shell, na Google Cloud barra de ferramentas da consola, clique em Ativar Cloud Shell:

    Ative o Cloud Shell.

    Após alguns momentos, é aberta uma sessão do Cloud Shell na Google Cloud consola:

    Sessão do Cloud Shell.

  6. 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:

    Interface do Profiler com o exemplo de código.

    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 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:

    • 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 Go runtime.main.
    • A moldura main laranja é a rotina main do programa de amostra.
    • A moldura laranja busyloop é uma rotina chamada a partir do main do exemplo.
    • A moldura laranja main.load é uma rotina chamada a partir do main do exemplo.

    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:

    Ocultar pilhas no programa de amostra.

    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:

    Para obter informações sobre a execução do agente do Cloud Profiler, consulte: