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 | Y | Y | Y | |
Memória | Y | Y | 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 | Y | Y |
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 | Y | Y | Y | Y |
Google Kubernetes Engine | Y | Y | Y | Y |
Ambiente flexível do App Engine | Y | Y | Y | Y |
Ambiente padrão do App Engine | Y | Y | Y | Y |
Dataproc | Y | |||
Dataflow | Y | Y | ||
Fora de Google Cloud | Y | Y | Y | Y |
A tabela seguinte resume os sistemas operativos suportados:
Sistemas operativos | Ir | Java | Node.js | Python |
---|---|---|---|---|
Implementação do Linuxglibc da biblioteca C padrão |
Y | Y | Y | Y |
Implementação do Linuxmusl da biblioteca C padrão |
Y | Y (alfa) | Y | Y (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:- 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
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.
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.