Vista geral do Cloud Profiler

Compreender o desempenho dos sistemas de produção é notoriamente difícil. A tentativa de medir o desempenho em ambientes de teste geralmente não replica as pressões sobre um sistema de produção. A microbenchmarking de partes da sua aplicação é, por vezes, viável, mas também não costuma replicar a carga de trabalho e o comportamento de um sistema de produção.

A criação de perfis contínua dos sistemas de produção é uma forma eficaz de descobrir onde os recursos, como os ciclos da CPU e a memória, são consumidos à medida que um serviço opera no respetivo ambiente de trabalho. No entanto, a criação de perfis adiciona uma carga adicional ao sistema de produção: para ser uma forma aceitável de descobrir padrões de consumo de recursos, a carga adicional da criação de perfis tem de ser pequena.

O Cloud Profiler é um profiler estatístico de baixa sobrecarga que recolhe continuamente informações de utilização da CPU e de atribuição de memória das suas aplicações de produção. Atribui essas informações ao código fonte que as gerou, ajudando a identificar as partes da sua aplicação que estão a consumir mais recursos e, de outra forma, a esclarecer as características de desempenho das suas aplicações.

Tipos de criação de perfis disponíveis

O Cloud Profiler suporta diferentes tipos de criação de perfis com base no idioma em que um programa é escrito. A tabela seguinte resume os tipos de perfis suportados por idioma:

Tipo de perfil Ir Java Node.js Python
Tempo da CPU YY Y
Memória YY Y
Memória dinâmica atribuída Y
Contenção Y
Discussões Y
Tempo entre o início e o fim da tarefa Y YY

Para ver 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 estes tipos de perfis, consulte o artigo Conceitos de criação de perfis.

Configurações suportadas

Quando instrumenta a sua aplicação para capturar dados de perfis, inclui um agente de criação de perfis específico do idioma. A tabela seguinte resume os ambientes suportados:

Ambientes Ir Java Node.js Python
Compute Engine YYYY
Google Kubernetes Engine YYYY
Ambiente flexível do App Engine YYYY
Ambiente padrão do App Engine YYYY
Dataproc Y
Dataflow YY
Fora de Google Cloud YYYY

A tabela seguinte resume os sistemas operativos suportados:

Sistemas operativos Ir Java Node.js Python
Implementação do Linux
glibc da biblioteca C padrão
YY YY
Implementação do Linux
musl da biblioteca C padrão
YY (alfa) YY (alfa)

Impacto no desempenho

O Cloud Profiler cria um único perfil através da recolha de dados de criação de perfis, normalmente durante 10 segundos, a cada 1 minuto para uma única instância do serviço configurado numa única zona do Compute Engine. Por exemplo, se o seu serviço GKE executar 10 réplicas de um agrupamento, num período de 10 minutos, são criados aproximadamente 10 perfis, e cada agrupamento é analisado aproximadamente uma vez. O período de criação de perfis é aleatório, pelo que existe variação. Consulte Recolha de perfis para mais informações.

A sobrecarga da criação de perfis de alocação de CPU e memória no momento da recolha de dados é inferior a 5%. Amortizado ao longo do tempo de execução e em várias réplicas de um serviço, a sobrecarga é normalmente inferior a 0,5%, o que a torna uma opção acessível para a criação de perfis sempre ativa em sistemas de produção.

Componentes

O Cloud Profiler consiste no agente de criação de perfis, que recolhe os dados, e numa interface de consola no Google Cloud, que lhe permite ver e analisar os dados recolhidos pelo agente.

Agente de criação de perfis

Instala o agente nas máquinas virtuais onde a sua aplicação é executada. Normalmente, o agente é apresentado como uma biblioteca que anexa à sua aplicação quando a executa. O agente recolhe dados de criação de perfis à medida que a app é executada.

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

Interface do gerador de perfis

Depois de o agente recolher alguns dados de criação de perfis, pode usar a interface do Profiler para ver como as estatísticas de utilização da CPU e da memória se correlacionam com as áreas da sua aplicação.

Interface do Cloud Profiler

Os dados do perfil são retidos durante 30 dias, pelo que pode analisar os dados de desempenho de períodos até aos últimos 30 dias. Os perfis podem ser transferidos para armazenamento a longo prazo.

Quotas e limites

Para ver informações sobre a visualização e a gestão das suas quotas do Profiler, consulte o artigo Quotas e limites.

Segurança dos dados

O Cloud Profiler é um serviço suportado pelos VPC Service Controls. Para mais informações, consulte a documentação do VPC Service Controls.