Neste documento, no framework de arquitetura do Google Cloud, você encontra recomendações para otimizar o desempenho do Compute Engine, do Google Kubernetes Engine (GKE) e dos recursos sem servidor.
Compute Engine
Nesta seção, fornecemos orientação para ajudar a otimizar a performance dos recursos do Compute Engine.
Recursos de escalonamento automático
Com os Grupos de instâncias gerenciadas (MIGs, na sigla em inglês), é possível escalonar os aplicativos sem estado implantados nas VMs do Compute Engine de maneira eficiente. O escalonamento automático ajuda seus aplicativos a continuar a oferecer um desempenho previsível quando a carga aumenta. Em um MIG, um grupo de VMs do Compute Engine é iniciado com base em um modelo definido por você. No modelo, configure uma política de escalonamento automático, que especifica um ou mais sinais que o escalonador automático usa para escalonar o grupo. Os indicadores de escalonamento automático podem ser baseados na programação, como o horário de início ou a duração, ou com base em métricas de destino, como uso médio da CPU. Para mais informações, consulte Escalonamento automático de grupos de instâncias.
Desativar SMT
Cada CPU virtual (vCPU) alocada para uma VM do Compute Engine é implementada como um multithread de hardware único. Por padrão, duas vCPUs compartilham um núcleo físico da CPU. Essa arquitetura é chamada de threads simultâneos (SMT).
Para cargas de trabalho altamente paralelas ou que executam cálculos de pontos flutuantes (como transcodificação, simulações de Monte Carlo, análise de sequência genética e modelagem de risco financeiro), é possível melhorar o desempenho desativando o SMT. Para ver mais informações, consulte Definir número de linhas de execução por núcleo.
Usar GPUs
Para cargas de trabalho como visualização e machine learning, é possível adicionar unidades de processamento gráfico (GPUs) às VMs. O Compute Engine fornece GPUs NVIDIA no modo de passagem para que as VMs tenham controle direto sobre as GPUs e a memória associada. Para cargas de trabalho de muitos gráficos, como a visualização 3D, é possível usar estações de trabalho virtuais NVIDIA RTX. Depois de implantar as cargas de trabalho, monitore o uso da GPU e analise as opções para otimizar a performance da GPU.
Usar tipos de máquina otimizados para computação
Cargas de trabalho como jogos, transcodificação de mídia e computação de alto desempenho (HPC) exigem alto desempenho consistente por núcleo da CPU. O Google recomenda o uso de tipos de máquina otimizados para computação para as VMs que executam essas cargas de trabalho. As VMs otimizadas para computação são criadas em uma arquitetura que usa recursos como acesso à memória não uniforme (NUMA, na sigla em inglês) para um desempenho ideal e confiável.
Cargas de trabalho de HPC apertadas têm um conjunto exclusivo de requisitos para atingir a eficiência de pico no desempenho. Para mais informações, consulte a seguinte documentação:
- Sistemas de arquivos paralelos para cargas de trabalho de HPC
- Arquitetura: sistema de arquivos Lustre no Google Cloud usando DDN EXAScaler
Escolher armazenamento apropriado
O Google Cloud oferece uma ampla variedade de opções de armazenamento para VMs do Compute Engine: discos permanentes, discos de unidade de estado sólido (SSD) locais, Filestore e Cloud Storage. Veja recomendações de design e práticas recomendadas para otimizar o desempenho de cada uma dessas opções de armazenamento, consulte Otimizar a performance do armazenamento.
Google Kubernetes Engine
Nesta seção, fornecemos orientações para ajudar a otimizar a performance dos seus recursos do Google Kubernetes Engine (GKE).
Recursos de escalonamento automático
É possível redimensionar automaticamente os pools de nós em um cluster do GKE para corresponder à carga atual usando o recurso escalonador automático de clusters. O escalonamento automático ajuda seus aplicativos a continuar oferecendo um desempenho previsível quando a carga aumenta. O escalonador automático de clusters redimensiona os pools de nós automaticamente com base nas solicitações de recursos (e não na utilização real de recursos) dos pods em execução nos nós. Quando você usa o escalonamento automático, pode haver uma compensação entre desempenho e custo. Revise as práticas recomendadas para configurar o escalonamento automático de clusters com eficiência.
Usar VMs C2D
É possível melhorar o desempenho de cargas de trabalho conteinerizadas com uso intensivo de computação usando tipos de máquina C2D. É possível adicionar nós C2D aos clusters do GKE escolhendo um tipo de máquina C2D nos pools de nós.
Desativar SMT
A várias linhas de execução simultâneas (SMT) pode aumentar significativamente a capacidade do aplicativo para tarefas gerais de computação e para cargas de trabalho que precisam de alta E/S. No entanto, para cargas de trabalho em que os dois núcleos virtuais estão vinculados à computação, o SMT pode causar desempenho inconsistente. Para um desempenho melhor e mais previsível, é possível desativar o SMT para os nós do GKE definindo o número de vCPUs por núcleo como 1.
Usar GPUs
Para cargas de trabalho com uso intenso de computação, como reconhecimento de imagens e transcodificação de vídeo, é possível acelerar o desempenho criando pools de nós que usam GPUs. Para mais informações, consulte Como executar GPUs.
Usar balanceamento de carga nativo de contêiner
O balanceador de carga nativo de contêiner permite que os balanceadores de carga distribuam o tráfego diretamente e de maneira uniforme aos pods. Essa abordagem proporciona melhor desempenho de rede e melhor visibilidade da latência da rede entre o balanceador de carga e os pods. Devido a esses benefícios, o balanceamento de carga nativo de contêiner é a solução recomendada para balanceamento de carga por meio da Entrada.
Definir uma política de posicionamento compacto
Cargas de trabalho em lote acopladas precisam de baixa latência de rede entre os nós no pool de nós do GKE. É possível implantar essas cargas de trabalho em pools de nós de zona única e garantir que os nós estejam fisicamente próximos uns dos outros definindo uma política de posicionamento compacta. Para mais informações, consulte Definir posicionamento compacto para nós do GKE.
Serviços de computação sem servidor
Nesta seção, fornecemos orientações para ajudar a otimizar o desempenho dos seus serviços de computação sem servidor no Google Cloud: Cloud Run e Cloud Functions. Esses serviços oferecem recursos de escalonamento automático, em que a infraestrutura subordinada lida com o escalonamento automaticamente. Ao usar esses serviços sem servidor, é possível reduzir o esforço de escalonamento dos microsserviços e das funções, e você pode se concentrar em otimizar o desempenho no nível do aplicativo.
Para mais informações, consulte a seguinte documentação:
- Como otimizar o desempenho dos serviços do Cloud Run
- Como otimizar aplicativos Java para o Cloud Run
- Como otimizar o desempenho no Cloud Functions
A seguir
Confira as práticas recomendadas para otimizar o desempenho dos seus recursos de armazenamento, rede, banco de dados e análise:
- Otimize a performance do armazenamento.
- Otimizar o desempenho da rede.
- Otimizar o desempenho do banco de dados.
- Otimizar o desempenho da análise.