Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce document fournit des conseils pour optimiser les performances et l’efficacité des coûts lors du déploiement de machines virtuelles à l’aide d’OpenShift Virtualization sur Azure Red Hat OpenShift. Ces conseils traitent également des problèmes liés aux performances de l’application et fournissent des étapes exploitables pour un déploiement réussi.
Approche de l’optimisation
Note
Les charges de travail dépendantes du GPU ne sont actuellement pas prises en charge sur OpenShift Virtualization sur Azure. Planifiez vos déploiements en conséquence.
L’optimisation des déploiements de machines virtuelles commence par comprendre vos charges de travail d’application et aligner les choix d’infrastructure en conséquence. Le déploiement d’OpenShift Virtualization sur des machines Azure Boost, les nœuds Worker du cluster, introduit une surcharge architecturale par rapport aux déploiements de machines virtuelles ou de pods natifs. La planification de la capacité et des performances doit tenir compte de cette surcharge.
Identification de la charge de travail
Avant de provisionner des machines virtuelles, catégorisez vos charges de travail pour déterminer leurs performances et leurs besoins en ressources. Les types de charges de travail courants sont les suivants :
- Usage général : Serveurs web, serveurs d’applications, systèmes de gestion de contenu.
- Base de données: Bases de données relationnelles et NoSQL nécessitant des E/S par seconde et une mémoire cohérentes.
- Analytique en temps réel : Traitement des données à faible latence, tableaux de bord opérationnels.
- IA/ML : Charges de travail nécessitant beaucoup d’UC/GPU et de mémoire.
- Diffusion en continu des données et messagerie : Architectures basées sur des événements à faible débit et à faible latence.
- Traitement par lots : Travaux périodiques ou à la demande traitant de grands volumes de données.
- Calcul haute performance (HPC) : Simulations scientifiques, modélisation financière.
- Edge et IoT : Agrégation et traitement des données à partir de capteurs distribués.
- Traitement multimédia : Encodage/décodage vidéo, transformation d’image, diffusion en continu.
- Environnements de développement/test : Environnements temporaires pour le développement et les tests.
Chaque type de charge de travail a des caractéristiques uniques qui influencent le dimensionnement, la configuration du stockage et les stratégies de réglage des performances des machines virtuelles.
Dimensionnement approprié de vos charges de travail d’application
Points clés à prendre en compte pour le dimensionnement approprié
- Exigence minimale de cœurs : OpenShift Virtualization nécessite un minimum de huit (8) VMs Azure avec au moins huit (8) cœurs pour les nœuds de travail OpenShift.
- Surcharge architecturale : Les performances peuvent varier en fonction des décisions architecturales prises lors de la configuration de l’environnement, notamment les types d’instances, le stockage et les caractéristiques réseau.
- Scale-out : Pour les charges de travail exigeantes, le scale-out de votre cluster Azure Red Hat OpenShift en ajoutant d’autres nœuds peut aider à surmonter la contention des ressources et à maintenir le débit.
- Référencez vos charges de travail : Évitez de compter uniquement sur des références de dimensionnement locales ; évaluez vos propres charges de travail pour informer le dimensionnement approprié.
- Facteurs de coût : Tenez compte des coûts de calcul Azure, des licences OpenShift, des licences de machines virtuelles et des exigences de scalabilité.
Le dimensionnement approprié garantit que vos machines virtuelles sont approvisionnées avec des ressources adéquates pour atteindre les objectifs de performances sans surprovisionner. Ce processus est essentiel dans les environnements cloud, où l’efficacité des ressources a un impact direct sur les coûts et les performances.
Étapes pour dimensionner les charges de travail à la bonne taille
Définir des métriques de santé
- Utilisation du processeur : ciblez une utilisation moyenne de 60 à 70%.
- Pression de la mémoire : surveillez l’utilisation de l’échange, la saturation de la mémoire et les erreurs de page.
- Contrainte d’E/S : mesurez la latence du disque, le débit et la profondeur de file d’attente.
Configurer la surveillance
- Utilisez Prometheus et Grafana pour la collecte et la visualisation en temps réel des métriques.
- Activez les métriques KubeVirt pour les insights au niveau de la machine virtuelle.
- Intégrez Azure Monitor, via Azure Arc, pour mettre en corrélation les métriques au niveau de l’infrastructure avec les performances des applications.
Analyser les données historiques
- Passez en revue les tendances des performances au fil du temps.
- Identifiez les périodes d’utilisation maximales et les événements de saturation des ressources.
- Utilisez des bases de référence historiques pour guider les futures décisions de mise à l’échelle automatique.
Ajuster les spécifications de machine virtuelle
- Choisissez les tailles de machine virtuelle appropriées de la série Dsv5 ou Dsv6 en fonction des métriques observées.
- Tenez compte des besoins en matière d’UC, de mémoire, d’IOPS de disque et de débit réseau.
- Évitez de surprovisionner en alignant les ressources avec les modèles d’utilisation réels.
- Passez en revue les conseils de Red Hat sur le dimensionnement approprié - Annonce du dimensionnement adapté pour OpenShift Virtualization | Red Hat Developer.
Tester et valider
- Effectuez des tests de charge à l’aide d’outils comme Apache JMeter, Locust ou stress-ng.
- Validez par rapport aux métriques de santé et aux cibles de performance définies.
- Itérer sur les modifications de configuration et retester pour confirmer les améliorations.
Réglage précis de votre environnement
L’optimisation de votre environnement OpenShift Virtualization est essentielle pour obtenir des performances optimales, en particulier pour les charges de travail exigeantes. Les meilleures pratiques suivantes sont dérivées de l’évaluation approfondie et de l’expérience réelle sur la série de machines virtuelles Azure Boost (Dsv5/Dsv6).
Stratégies d’optimisation des performances
- Effectuez un scale-out ou un scale-up pour les charges de travail exigeantes : Ajoutez d’autres nœuds ou upsizez les nœuds dans votre cluster Azure Red Hat OpenShift pour des applications à haute concurrence ou gourmandes en ressources.
- Évitez les limites de ressources strictes : Définissez uniquement la mémoire invité pour les machines virtuelles ; évitez les limites de ressources strictes, sauf si nécessaire pour la gouvernance.
- Paramétrez les configurations de stockage et de réseau : Sélectionnez des solutions de stockage et des niveaux de performances qui correspondent aux besoins de votre charge de travail. Pour les charges de travail gourmandes en réseau, paramétrez les paramètres tels que NAPI et multiqueue, et surveillez le débit et la latence.
- Surveillez et testez régulièrement : Utilisez Prometheus, Grafana et Azure Monitor pour suivre les métriques clés. Évaluez vos propres charges de travail pour valider les performances et guider le réglage.
- Attendez-vous à une surcharge architecturale : Planifiez la capacité et définissez les attentes en conséquence, en particulier pour les charges de travail avec des E/S élevées ou des demandes réseau.
Paramétrage de la machine virtuelle surcommit
L’opérateur OpenShift Virtualization vous permet d’ajuster les ratios processeur et mémoire, ce qui vous permet d’allouer plus de ressources virtuelles que physiquement disponibles. Cette modification peut améliorer la densité et l’utilisation des ressources, mais peut augmenter la contention et affecter les performances.
Bonnes pratiques pour le réglage surcommit :
- Utilisez un surengagement conservateur pour les charges de travail de production.
- Envisagez une surutilisation élevée pour les environnements de dév/test.
- Surveillez l’utilisation des ressources et ajustez les ratios en fonction des besoins.
Pour plus d’informations, consultez Configuration d’une densité de charge de travail de machine virtuelle supérieure
Meilleures pratiques basées sur l’évaluation
- Charges de travail de base de données : Évitez de définir des demandes de ressources et des limites pour les machines virtuelles. Surveillez étroitement les performances lors de l’utilisation d’un stockage rapide et d’une concurrence élevée. Effectuez un scale-out des nœuds de cluster pour les déploiements de bases de données volumineuses.
- Charges de travail réseau : Paramétrez les paramètres réseau pour un débit optimal. Effectuez un scale-out en fonction des besoins pour obtenir le débit réseau souhaité.
Réglage de la solution de stockage
- OpenShift Data Foundation (ODF) : Utilisez le stockage ssd pour un accès à faible latence. Configurez les stratégies de codage de réplication et d’effacement en fonction des besoins de la charge de travail. Pour empêcher la concurrence pour vos ressources de calcul de l'application, envisagez de créer un pool de travailleurs distinct pour ODF avec des tailles de machines virtuelles Azure plus petites. Ds16v5 est un bon point de départ, et utilisez des souillures/tolérances pour garantir qu'ODF est la seule charge de travail planifiée. Surveillez les performances du stockage et ajustez les facteurs de réplication en fonction des besoins.
- Azure NetApp Files (ANF) : Choisissez des niveaux de performances en fonction des IOPS et des exigences de débit. Vérifiez les options de montage appropriées et la configuration réseau pour des performances optimales. Utilisez des instantanés de volume et des sauvegardes pour prendre en charge les stratégies de protection et de récupération des données.