Partilhar via


Boas práticas para implementações de máquinas virtuais na Virtualização OpenShift

Este documento fornece orientações para otimizar o desempenho e a eficiência de custos ao implementar máquinas virtuais (VMs) utilizando OpenShift Virtualization no Azure Red Hat OpenShift. Esta orientação também aborda quaisquer preocupações relacionadas com o desempenho da aplicação e fornece passos práticos para uma implementação bem-sucedida.

Abordagem à otimização

Observação

Atualmente, as cargas de trabalho dependentes da GPU não são suportadas no OpenShift Virtualization no Azure. Planeie as suas missões em conformidade.

A otimização das implementações de VMs começa por compreender as cargas de trabalho das suas aplicações e alinhar as escolhas de infraestrutura em conformidade. A implementação OpenShift Virtualization em máquinas Azure Boost, os nós de trabalho do cluster, introduz sobrecarga arquitetónica em comparação com implementações nativas de VM ou pods. O planeamento da capacidade e do desempenho deve ter em conta esta sobrecarga.

Identificação da carga de trabalho

Antes de provisionar VMs, categorize as suas cargas de trabalho para determinar o seu desempenho e os requisitos de recursos. Tipos comuns de carga de trabalho incluem:

  • Uso geral: Servidores web, servidores de aplicações, sistemas de gestão de conteúdos.
  • Base de Dados: Bases de dados relacionais e NoSQL que requerem IOPS e memória consistentes.
  • Análises em tempo real: Processamento de dados de baixa latência, dashboards operacionais.
  • IA/ML: Cargas de trabalho intensivas em computação que exigem CPU/GPU e memória elevadas.
  • Transmissão de dados e mensagens: Arquiteturas orientadas por eventos de alta capacidade e baixa latência.
  • Processamento em lote: Trabalhos periódicos ou sob demanda que processam grandes volumes de dados.
  • Computação de Alto Desempenho (HPC): Simulações científicas, modelação financeira.
  • Edge e IoT: Agregação e processamento de dados de sensores distribuídos.
  • Processamento de suportes: Codificação/descodificação de vídeo, transformação de imagens, streaming.
  • Ambientes de desenvolvimento/teste: Ambientes temporários para desenvolvimento e testes.

Cada tipo de carga de trabalho tem características únicas que influenciam o tamanho das VMs, a configuração do armazenamento e as estratégias de ajuste de desempenho.

Dimensionar corretamente as cargas de trabalho da sua aplicação

Considerações-chave para o tamanho correto

  • Requisito central mínimo: A virtualização OpenShift requer um mínimo de oito (8) VMs principais do Azure para nós de trabalho do OpenShift.
  • Despesas arquitetónicas: O desempenho pode variar dependendo das decisões arquitetónicas tomadas ao configurar o ambiente, incluindo tipos de instância, armazenamento e características da rede.
  • Escalar: Para cargas de trabalho exigentes, escalar o seu cluster Azure Red Hat OpenShift adicionando mais nós pode ajudar a ultrapassar a contenção de recursos e manter o throughput.
  • Compare as suas cargas de trabalho: Evite confiar apenas em referências de tamanho local; Compare as suas próprias cargas de trabalho para orientar o tamanho correto.
  • Fatores de custo: Considere os custos de computação Azure, licenciamento OpenShift, licenciamento de VM e requisitos de escalabilidade.

O dimensionamento correto garante que as suas VMs são provisionadas com recursos adequados para atingir os objetivos de desempenho sem sobreprovisionamento. Este processo é fundamental em ambientes cloud, onde a eficiência dos recursos impacta diretamente o custo e o desempenho.

Etapas para dimensionar cargas de trabalho corretamente

  1. Definir métricas de saúde

    • Utilização da CPU: Objetivo de 60–70% uso médio.
    • Pressão de memória: Utilização de troca de monitores, saturação de memória e falhas de página.
    • IO Strain: Mede a latência do disco, o throughput e a profundidade da fila.
  2. Configurar o monitoramento

    • Use o Prometheus e o Grafana para recolha e visualização de métricas em tempo real.
    • Ative as métricas KubeVirt para insights ao nível da VM.
    • Integre com o Azure Monitor, via Azure Arc, para correlacionar métricas ao nível da infraestrutura com o desempenho da aplicação.
  3. Analisar dados históricos

    • Analise as tendências de desempenho ao longo do tempo.
    • Identificar períodos de pico de utilização e eventos de saturação de recursos.
    • Use linhas de base históricas para orientar futuras decisões de autoescalonamento.
  4. Ajustar as especificações da VM

  5. Testar e validar

    • Realiza testes de carga usando ferramentas como Apache JMeter, Locust ou stress-ng.
    • Validar em relação a métricas de saúde definidas e metas de desempenho.
    • Iterar alterações de configuração e testar novamente para assegurar melhorias.

Ajustar o seu ambiente

Afinar o seu ambiente de Virtualização OpenShift é essencial para alcançar um desempenho ótimo, especialmente para cargas de trabalho exigentes. As seguintes boas práticas derivam de uma extensa análise de benchmarking e experiência prática na série de VMs Azure Boost (Dsv5/Dsv6).

Estratégias de otimização de desempenho

  • Escale ou aumente para cargas de trabalho exigentes: Adicione mais nós ou aumente o tamanho dos nós no seu cluster Azure Red Hat OpenShift para aplicações de alta concorrência ou que consomam muitos recursos.
  • Evite limites rigorosos de recursos: Definir apenas memória convidada para VMs; Evite limites rigorosos de recursos, a menos que seja necessário para a governação.
  • Sintonizar o armazenamento e as configurações de rede: Selecione soluções de armazenamento e níveis de desempenho que correspondam às suas necessidades de carga de trabalho. Para cargas de trabalho intensivas em rede, ajuste definições como NAPI e multiqueue, e monitorize o débito e a latência.
  • Monitorize e faça benchmarks regularmente: Use Prometheus, Grafana e Azure Monitor para acompanhar métricas-chave. Compara as tuas próprias cargas de trabalho para validar o desempenho e orientar ajustes adicionais.
  • Espere custos arquitetónicos: Planeie a capacidade e defina expectativas em conformidade, especialmente para cargas de trabalho com elevadas exigências de I/O ou de rede.

Ajuste de overcommit em VM

O operador OpenShift Virtualization permite-lhe ajustar as proporções de overcommit da CPU e da memória, permitindo alocar mais recursos virtuais do que os fisicamente disponíveis. Esta alteração pode melhorar a densidade e a utilização de recursos, mas pode aumentar a contenção e afetar o desempenho.

Boas práticas para a afinação do overcommit:

  • Empregar o overcommit conservador para cargas de trabalho em produção.
  • Consider um nível mais elevado de sobrecomprometimento para ambientes de desenvolvimento/teste.
  • Monitorizar o uso de recursos e ajustar as proporções conforme necessário.

Para mais informações, consulte Configurar maior densidade de carga de trabalho em VMs

Boas práticas baseadas em benchmarking

  • Cargas de trabalho de bases de dados: Evite definir tanto pedidos de recursos como limites para VMs. Monitorize o desempenho de perto ao usar armazenamento rápido e alta concorrência. Ampliar os nós do cluster para grandes implantações de bases de dados.
  • Cargas de trabalho de rede: Ajuste as definições de rede para o máximo rendimento. Escalonar conforme necessário para alcançar a largura de banda de rede desejada.

Afinação da solução de armazenamento

  • Fundação de Dados OpenShift (ODF): Usa armazenamento apoiado por SSD para acesso de baixa latência. Configure as políticas de replicação e de codificação de apagamento com base nas necessidades do workload. Para evitar concorrência pelos recursos de computação da sua aplicação, considere criar um pool de trabalhadores separado para ODF com tamanhos de VM Azure mais pequenos, o Ds16v5 é um bom ponto de partida, e use contaminações/tolerâncias para garantir que o ODF é a única carga de trabalho agendada ali. Monitorizar o desempenho do armazenamento e ajustar os fatores de replicação conforme necessário.
  • Azure NetApp Files (ANF): Escolha níveis de desempenho com base nos IOPS e nos requisitos de throughput. Assegure as opções de montagem adequadas e a configuração da rede para um desempenho ótimo. Utilize instantâneos de volume e backups para apoiar estratégias de proteção e recuperação de dados.

OpenShift Virtualization para Azure Red Hat OpenShift.