Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este documento fornece diretrizes para otimizar o desempenho e a eficiência de custos ao implantar VMs (máquinas virtuais) usando o OpenShift Virtualization no Red Hat OpenShift no Azure. Essa orientação também aborda quaisquer preocupações em relação ao desempenho do aplicativo e fornece etapas acionáveis para implantação bem-sucedida.
Abordagem para otimização
Observação
Atualmente, não há suporte para cargas de trabalho dependentes de GPU na Virtualização do OpenShift no Azure. Planeje suas implantações adequadamente.
A otimização das implantações de VM começa com a compreensão das cargas de trabalho do aplicativo e o alinhamento das opções de infraestrutura adequadamente. A implantação do OpenShift Virtualization em máquinas do Azure Boost, os nós de trabalho do cluster, introduz uma sobrecarga arquitetônica em comparação com implantações nativas de VM ou pod. O planejamento de capacidade e desempenho deve considerar essa sobrecarga.
Identificação da carga de trabalho
Antes de provisionar VMs, categorize suas cargas de trabalho para determinar seus requisitos de desempenho e recursos. Os tipos comuns de carga de trabalho incluem:
- Finalidade geral: Servidores Web, servidores de aplicativos, sistemas de gerenciamento de conteúdo.
- Base de dados: Bancos de dados Relacionais e NoSQL que exigem IOPS e memória consistentes.
- Análise em tempo real: Processamento de dados de baixa latência, painéis operacionais.
- IA/ML: Cargas de trabalho com uso intensivo de computação que exigem alta CPU/GPU e memória.
- Streaming de dados e mensagens: Arquiteturas orientadas a eventos de alto throughput e baixa latência.
- Processamento em lote: Trabalhos periódicos ou sob demanda processando grandes volumes de dados.
- HPC (computação de alto desempenho): Simulações científicas, modelagem financeira.
- Edge e IoT: Agregar e processar dados de sensores distribuídos.
- Processamento de mídia: Codificação/decodificação de vídeo, transformação de imagem, streaming.
- Ambientes de desenvolvimento/teste: Ambientes temporários para desenvolvimento e teste.
Cada tipo de carga de trabalho tem características exclusivas que influenciam o dimensionamento da VM, a configuração de armazenamento e as estratégias de ajuste de desempenho.
Dimensionamento correto de cargas de trabalho do aplicativo
Principais considerações para o dimensionamento correto
- Requisito de núcleo mínimo: A Virtualização do OpenShift requer um mínimo de oito (8) VMs principais do Azure para nós de trabalho do OpenShift.
- Sobrecarga arquitetônica: O desempenho pode variar dependendo das decisões de arquitetura tomadas ao configurar o ambiente, incluindo tipos de instância, armazenamento e características de rede.
- Escalonamento horizontal: Para cargas de trabalho exigentes, escalonar o cluster do Azure Red Hat OpenShift adicionando mais nós pode ajudar a superar problemas de contenção de recursos e manter a taxa de transferência.
- Faça o benchmark de suas cargas de trabalho: Evite depender apenas de referências de dimensionamento locais; faça benchmark de suas próprias cargas de trabalho para informar o dimensionamento correto.
- Fatores de custo: Considere os custos de computação do Azure, o licenciamento do OpenShift, o licenciamento de VM e os requisitos de escalabilidade.
O dimensionamento correto garante que suas VMs sejam provisionadas com recursos adequados para atender às metas de desempenho sem excesso de provisionamento. Esse processo é fundamental em ambientes de nuvem, em que a eficiência dos recursos afeta diretamente o custo e o desempenho.
Etapas para otimizar o tamanho das cargas de trabalho
Definir métricas de saúde
- Utilização da CPU: meta de 60 a 70% de uso médio.
- Pressão de Memória: monitore o uso de swap, a saturação de memória e as falhas de página.
- Carga de E/S: medir a latência do disco, a taxa de transferência e a profundidade da fila.
Configurar o monitoramento
- Use Prometheus e Grafana para coleta e visualização de métricas em tempo real.
- Habilite as métricas do KubeVirt para insights no nível da VM.
- Integre-se ao Azure Monitor, por meio do Azure Arc, para correlacionar as métricas de nível de infraestrutura com o desempenho do aplicativo.
Analisar dados históricos
- Examine as tendências de desempenho ao longo do tempo.
- Identifique os períodos de pico de uso e os eventos de saturação de recursos.
- Use linhas de base históricas para orientar futuras decisões de dimensionamento automático.
Ajustar especificações de VM
- Escolha os tamanhos de VM apropriados das séries Dsv5 ou Dsv6 com base nas métricas observadas.
- Considere as necessidades de CPU, memória, IOPS de disco e taxa de transferência de rede.
- Evite o excesso de provisionamento alinhando recursos com padrões de uso reais.
- Examine as diretrizes do Red Hat sobre o dimensionamento correto – Anunciando o dimensionamento correto para a Virtualização do OpenShift | Desenvolvedor do Red Hat.
Testar e validar
- Execute testes de carga usando ferramentas como Apache JMeter, Locust ou stress-ng.
- Valide em relação às métricas de integridade definidas e às metas de desempenho.
- Itera em alterações de configuração e reestaste para confirmar melhorias.
Otimizando seu ambiente
Ajustar o ambiente de Virtualização do OpenShift é essencial para obter um desempenho ideal, especialmente para cargas de trabalho exigentes. As práticas recomendadas a seguir são baseadas em uma experiência ampla de benchmarking e experiência prática na série de VMs do Azure Boost (Dsv5/Dsv6).
Estratégias de otimização de desempenho
- Escalar horizontalmente ou aumentar para cargas de trabalho exigentes: Adicione mais nós ou redimensione os nós em seu cluster do Red Hat OpenShift do Azure para aplicativos de alta simultaneidade ou com uso intensivo de recursos.
- Evite limites de recursos estritos: Definir somente memória de convidado para VMs; evite limites de recursos estritos, a menos que seja necessário para governança.
- Ajustar configurações de armazenamento e rede: Selecione soluções de armazenamento e camadas de desempenho que correspondam às suas necessidades de carga de trabalho. Para cargas de trabalho com uso intensivo de rede, ajuste configurações como NAPI e multiqueue e monitore a taxa de transferência e a latência.
- Monitorar e fazer benchmark regularmente: Use o Prometheus, o Grafana e o Azure Monitor para acompanhar as principais métricas. Faça o benchmark de suas próprias cargas de trabalho para validar o desempenho e orientar o ajuste adicional.
- Espere sobrecarga arquitetônica: Planeje a capacidade e defina as expectativas adequadamente, especialmente para cargas de trabalho com alta demanda de E/S ou de rede.
Ajuste de excesso de compromisso da VM
O operador OpenShift Virtualization permite ajustar as taxas de superalocação de CPU e memória, permitindo que você aloque mais recursos virtuais do que fisicamente disponíveis. Essa alteração pode melhorar a densidade e a utilização de recursos, mas pode aumentar a contenção e afetar o desempenho.
Práticas recomendadas para ajuste de sobrecarga:
- Use superalocação conservadora para cargas de trabalho de produção.
- Considere uma superalocação maior para ambientes de desenvolvimento/teste.
- Monitore o uso de recursos e ajuste as taxas conforme necessário.
Para obter mais informações, consulte Configurar maior densidade de carga de trabalho de VM
Práticas recomendadas com base no benchmarking
- Cargas de trabalho de banco de dados: Evite definir solicitações de recursos e limites para VMs. Monitore o desempenho de perto ao usar o armazenamento rápido e a alta simultaneidade. Aumente os nós do cluster para grandes implantações de banco de dados.
- Cargas de trabalho de rede: Ajuste as configurações de rede para a taxa de transferência ideal. Escalar horizontalmente conforme necessário para alcançar a taxa de transferência de rede desejada.
Ajuste da solução de armazenamento
- OpenShift Data Foundation (ODF): Use o armazenamento com suporte para SSD para acesso de baixa latência. Configure a replicação e a eliminação de políticas de codificação com base nas necessidades de carga de trabalho. Para evitar a concorrência pelos recursos de computação do seu aplicativo, considere criar um pool de trabalho separado para ODF com tamanhos menores de VMs do Azure. O Ds16v5 é um bom ponto de partida e, para garantir que o ODF seja a única carga de trabalho agendada nesse pool, use taints e tolerações. Monitore o desempenho do armazenamento e ajuste os fatores de replicação conforme necessário.
- Azure NetApp Files (ANF): Escolha camadas de desempenho com base nos requisitos de IOPS e taxa de transferência. Verifique as opções de montagem adequadas e a configuração de rede para um desempenho ideal. Use instantâneos de volume e backups para dar suporte a estratégias de recuperação e proteção de dados.