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 | S | Y | S | |
Heap | S | Y | S | |
Heap alocada | S | |||
Contenção | S | |||
Linhas de execução | S | |||
Tempo decorrido | S | Y | S |
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 | S | Y | Y | S |
Google Kubernetes Engine | S | Y | Y | S |
Ambiente flexível do App Engine | S | Y | Y | S |
Ambiente padrão do App Engine | S | Y | Y | S |
Dataproc | S | |||
Dataflow | S | S | ||
Fora do Google Cloud | S | Y | Y | S |
A tabela a seguir resume os sistemas operacionais compatíveis:
Sistemas operacionais | Go | Java | Node.js | Python |
---|---|---|---|---|
Implementação glibc dabiblioteca padrão C do Linux |
S | Y | Y | S |
Implementação musl dabiblioteca padrão C do Linux |
S | S (Alfa) | S | S (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:- 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
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.
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.