Visão geral do Cloud Profiler

Entender o desempenho dos sistemas de produção é difícil. As tentativas de avaliação do desempenho em ambientes de teste raramente conseguem simular a pressão em um sistema de produção. Realizar o microbenchmark de partes do código costuma ser viável, mas também às vezes não é possível simular a carga de trabalho e o funcionamento de um sistema de produção.

A criação contínua do perfil de sistemas de produção é uma maneira eficaz de descobrir onde recursos como ciclos de CPU e memória são consumidos durante a operação de um serviço no ambiente em que ele funciona. No entanto, a criação de perfil gera carga complementar no sistema de produção: para ser uma maneira apropriada de descobrir padrões no consumo de recursos, essa carga precisa ser pequena.

O Cloud Profiler é um criador de perfil estatístico de baixa sobrecarga. Ele coleta continuamente informações de uso de CPU e de alocação de memória dos aplicativos em produção. O Profiler atribui essas informações ao código-fonte do aplicativo para você identificar as partes que consomem mais recursos e para mostrar as características de desempenho do código.

Tipos de criação de perfil disponíveis

O Cloud Profiler é compatível com vários tipos de criação de perfil com base na linguagem em que um programa é escrito. A tabela a seguir resume os tipos compatíveis por linguagem:

Tipo de perfil Go Java Node.js Python
Tempo de CPU SY S
Heap SY S
Heap alocada S
Contenção S
Linhas de execução S
Tempo decorrido S YS

Para informações completas sobre os requisitos de idioma e quaisquer restrições, consulte a página de instruções do idioma. Para mais informações sobre esses tipos de perfil, consulte Conceitos de criação de perfil.

Configurações compatíveis

Ao instrumentar seu aplicativo para capturar dados de perfil, inclua um agente de criação de perfil específico da linguagem. A tabela a seguir resume os ambientes compatíveis:

Ambientes Go Java Node.js Python
Compute Engine SYYS
Google Kubernetes Engine SYYS
Ambiente flexível do App Engine SYYS
Ambiente padrão do App Engine SYYS
Dataproc S
Dataflow SS
Fora do Google Cloud SYYS

A tabela a seguir resume os sistemas operacionais compatíveis:

Sistemas operacionais Go Java Node.js Python
Implementação glibc da
biblioteca padrão C do Linux
SY YS
Implementação musl da
biblioteca padrão C do Linux
SS (Alfa) SS (Alfa)

Impacto no desempenho

O Cloud Profiler cria um único perfil coletando dados de criação de perfil, geralmente por 10 segundos, a cada 1 minuto para uma única instância do serviço configurado em uma única zona do Compute Engine. Por exemplo, se o serviço do GKE executa 10 réplicas de um pod, em um período de 10 minutos, cerca de 10 perfis serão criados e cada pod terá um perfil criado ao menos uma vez. Esse período é aleatório, portanto, há variação. Saiba mais em Coleta de perfis.

A sobrecarga da criação de perfil da alocação de pilha e CPU no momento da coleta de dados é menor que 5%. Amortizada ao longo do tempo de execução e em várias réplicas de um serviço, a sobrecarga geralmente é inferior a 0,5%. Por isso, é uma opção acessível para criação de perfis sempre ativada em sistemas de produção.

Componentes

O Cloud Profiler é composto pelo agente de criação de perfil, que coleta os dados, e uma interface de console no Google Cloud, que permite visualizar e analisar os dados coletados pelo agente.

Agente de criação de perfil

Instale o agente nas máquinas virtuais em que o aplicativo é executado. Geralmente, o agente vem como uma biblioteca que você anexa ao código durante a execução dele. O agente coleta dados de criação de perfil conforme o aplicativo é executado.

Saiba mais sobre como executar o agente do Cloud Profiler em:

Interface do Profiler

Depois que o agente coletar alguns dados de criação de perfil, será possível usar a interface do Profiler para ver como as estatísticas de uso de CPU e memória se relacionam com as áreas do aplicativo.

Interface do Cloud Profiler

Os dados do perfil são armazenados por 30 dias para você analisar o desempenho nesse período. É possível fazer o download dos perfis para armazená-los a longo prazo.

Cotas e limites

Saiba mais sobre como visualizar e gerenciar suas cotas do Profiler em Cotas e limites.

Segurança dos dados

O Cloud Profiler é um serviço compatível com o VPC Service Controls. Para saber mais, veja a documentação do VPC Service Controls.