Abonnez-vous au flux

La solution Red Hat OpenShift Virtualization permet d'éliminer les obstacles liés aux charges de travail en unifiant de façon cloud-native le déploiement et la gestion des machines virtuelles ainsi que les applications conteneurisées. Au sein de la grande équipe chargée des performances et de la mise à l'échelle, nous avons été profondément impliqués dans la mesure et l'analyse des machines virtuelles exécutées sur OpenShift depuis les débuts du projet Open Source KubeVirt et avons contribué à améliorer le produit grâce à l'évaluation de nouvelles fonctions, à l'ajustement des charges de travail et aux tests de mise à l'échelle. Cet article aborde plusieurs de nos domaines d'intérêt et fournit des informations supplémentaires sur l'exécution et l'ajustement des charges de travail de machine virtuelle sur OpenShift.

Guides d'ajustement et de mise à l'échelle

Notre équipe contribue à ajuster et faire évoluer la documentation pour aider les clients à tirer le meilleur parti de leurs déploiements de machine virtuelle. Tout d'abord, nous vous proposons un guide d'ajustement général, que vous trouverez dans cet article de la base de connaissances. Ce guide fournit des recommandations pour optimiser le plan de contrôle Virtualization lors de la création « en rafale » de machines virtuelles ainsi que diverses options d'ajustement au niveau de l'hôte et de la machine virtuelle afin d'améliorer les performances des charges de travail.

Nous avons également publié une architecture de référence approfondie qui comprend un exemple de cluster OpenShift, un cluster Red Hat Ceph Storage (RHCS) et des informations d'ajustement du réseau. L'article comporte aussi des exemples des délais de déploiement et de « boot storm » de machine virtuelle, des performances de mise à l'échelle de la latence d'E/S, de migration et de parallélisme de machine virtuelle, et de mise à niveau de clusters à grande échelle.

Domaines d'intérêt de l'équipe

Les sections suivantes présentent un aperçu de certains de nos principaux domaines d'intérêt ainsi que des informations sur les tests que nous effectuons pour caractériser et améliorer les performances des machines virtuelles exécutées sur OpenShift. La figure 1 ci-dessous illustre nos domaines d'intérêt.

openshift-virtualization-performance-and-scale-fr(1)

Figure 1 : domaines d'intérêt d'OpenShift Virtualization en matière de performances

Performances des charges de travail

Nous accordons beaucoup d'attention aux charges de travail essentielles (composants de calcul, de mise en réseau et de stockage) afin de couvrir de nombreuses options. Ce travail inclut la collecte continue de références sur différents modèles matériels, la mise à jour des résultats au fur et à mesure de la sortie de nouvelles versions et l'analyse approfondie de diverses options d'ajustement dans le but d'obtenir des performances optimales.

Les performances des bases de données jouent un rôle clé dans les charges de travail. Nous utilisons généralement HammerDB comme pilote de charge de travail et nous concentrons sur plusieurs types de bases de données, notamment MariaDB, PostgreSQL et MSSQL, afin de comprendre les performances des bases de données dont les caractéristiques diffèrent. Ce modèle fournit un exemple de définition de machine virtuelle HammerDB.

La base de données en mémoire à haut débit SAP HANA représente un autre domaine d'intérêt en matière de charges de travail, car elle est conçue pour fonctionner avec au maximum 10 % de bare metal. Pour ce faire, nous appliquons des ajustements de type isolement au niveau des couches de l'hôte et de la machine virtuelle, notamment en utilisant CPUManager, en ajustant l'affinité des processus contrôlée par systemd, en sauvegardant la machine virtuelle avec des hugepages et en utilisant des pièces jointes du réseau SRIOV.

Pour mieux couvrir les performances de stockage, nous exécutons un ensemble de différents modèles d'application d'E/S en mettant l'accent à la fois sur les IOPS (opérations d'entrée/sortie par seconde) et sur la latence à l'aide de la charge de travail Vdbench. Les modèles d'application font varier la taille des blocs, le type d'opération d'E/S, la taille et le nombre de fichiers et répertoires, et ajustent la proportion de lectures et d'écritures. Cela nous permet de couvrir différents comportements d'E/S pour comprendre diverses caractéristiques de performance. Nous exécutons également un autre microtest de performances de stockage courant, Fio, pour mesurer différents profils de stockage. Nous testons plusieurs fournisseurs de stockage persistant, mais nous utilisons principalement la solution OpenShift Data Foundation en utilisant des volumes de périphériques de traitement par blocs RADOS (RBD) en mode bloc dans des machines virtuelles.

Nous nous concentrons également sur différents types de microtests de performances pour évaluer les performances d'autres composants afin de compléter certaines de ces charges de travail plus complexes. Pour la mise en réseau, nous utilisons généralement la charge de travail uperf afin de mesurer les configurations de test de Stream et RequestResponse pour différentes tailles de messages et nombres de threads, en nous concentrant à la fois sur le podnetwork par défaut et sur d'autres types d'interfaces CNI (Container Network Interface), tels que Linux Bridge et les réseaux supplémentaires OVN-Kubernetes. Pour les tests de calcul, nous utilisons différents tests de performance, tels que stress-ng, blackscholes ou SPECjbb2005, en fonction du domaine d'intérêt.

Tests de régression

À l'aide du framework d'automatisation benchmark-runner, nous exécutons en permanence des configurations de charges de travail et comparons les résultats à des références connues afin de détecter et corriger les régressions dans les versions préliminaires d'OpenShift Virtualization. Comme nous nous intéressons aux performances de virtualisation, nous exécutons ce framework de test continu sur des systèmes bare metal. Nous comparons des charges de travail qui ont des configurations similaires entre les pods, les machines virtuelles et les conteneurs en sandbox afin de mieux comprendre les performances relatives. Cette automatisation nous permet d'installer rapidement de nouvelles versions préliminaires d'OpenShift et des opérateurs qui nous intéressent, notamment OpenShift Virtualization, OpenShift Data Foundation, Local Storage Operator et les conteneurs en sandbox d'OpenShift. En caractérisant les performances des versions préliminaires plusieurs fois par semaine, nous pouvons identifier les régressions avant leur publication pour les clients, et ainsi comparer les améliorations des performances au fil du temps, à mesure que nous effectuons des mises à jour vers des versions plus récentes aux fonctions améliorées.

Nous ajoutons sans cesse de nouvelles charges de travail automatisées en continu, mais certaines charges de travail sont régulièrement exécutées : les tests de performance pour les bases de données, les microévaluations pour le calcul, uperf, Vdbench, Fio, ainsi que des tests de « boot storm » pour les machines virtuelles et de latence de démarrage des pods qui portent sur différents domaines du cluster, afin de mesurer la rapidité à laquelle un grand nombre de pods ou de machines virtuelles peuvent être démarrés simultanément.

Performances de migration

En utilisant un fournisseur de stockage partagé qui autorise le mode d'accès RWX, la migration dynamique des charges de travail des machines virtuelles est plus simple lors des mises à niveau de clusters. Nous nous efforçons constamment d'améliorer la vitesse à laquelle les machines virtuelles peuvent migrer sans provoquer d'interruption importante des charges de travail. Pour ce faire, nous devons tester et recommander des limites et politiques de migration afin de fournir des valeurs par défaut sûres, ainsi que tester des limites beaucoup plus élevées pour détecter les goulets d'étranglement des composants de migration. Nous mesurons également les avantages de la création d'un réseau de migration dédié et analysons la mise en réseau au niveau du nœud ainsi que les métriques de migration par machine virtuelle pour caractériser la progression de la migration sur le réseau.

Performances de mise à l'échelle

Nous testons régulièrement des environnements à grande échelle pour détecter les goulets d'étranglement et évaluer les options d'ajustement. Nos tests de mise à l'échelle concernent aussi bien la mise à l'échelle du plan de contrôle d'OpenShift que la mise à l'échelle du plan de contrôle de Virtualization, en passant par la mise à l'échelle de la latence d'E/S des charges de travail, le parallélisme de migration, le clonage des volumes de données et l'ajustement de la création en « rafale » de machine virtuelle.

Au cours de ces tests, nous avons découvert plusieurs bogues liés à la mise à l'échelle, qui ont finalement mené à des améliorations, ce qui nous a permis de pousser encore plus loin la série suivante de tests de mise à l'échelle. Toutes les meilleures pratiques de mise à l'échelle que nous identifions sont documentées dans notre Guide général d'ajustement et de mise à l'échelle.

Performances des clusters hébergés

Nous nous intéressons de plus en plus aux performances des plans de contrôle et clusters hébergés, et plus spécifiquement à l'examen des plans de contrôle hébergés en bare metal sur site et des clusters hébergés sur OpenShift Virtualization, qui utilise le fournisseur de clusters KubeVirt.

Nos domaines de travail initiaux incluent notamment les tests de la mise à l'échelle de plusieurs instances d'etcd (voir la recommandation de stockage dans la section Important), les tests de mise à l'échelle de plan de contrôle hébergé avec une charge de travail d'API élevée et les performances des charges de travail hébergées lors de la gestion de clusters de plans de contrôle hébergés sur OpenShift Virtualization. Consultez nos conseils sur le dimensionnement des clusters hébergés pour découvrir l'un des principaux résultats de ces travaux récents.

Et ensuite ?

Nous publierons d'autres articles qui traiteront plus en détail ces questions de performances et de mise à l'échelle, notamment un examen approfondi de la méthodologie de dimensionnement des clusters hébergés et des recommandations détaillées sur l'ajustement de la migration des machines virtuelles.

En attendant, nous continuerons à mesurer et analyser les performances des machines virtuelles sur OpenShift, à repousser les limites de la mise à l'échelle, et à nous concentrer sur la détection et la correction des régressions avant que les clients aient accès aux versions.

En savoir plus sur Red Hat OpenShift Virtualization


À propos de l'auteur

Jenifer joined Red Hat in 2018 and leads the OpenShift Virtualization Performance team. Previously, she spent a decade working at IBM in the Linux Technology Center focused on Linux Performance.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Parcourir par canal

automation icon

Automatisation

Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements

AI icon

Intelligence artificielle

Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement

open hybrid cloud icon

Cloud hybride ouvert

Découvrez comment créer un avenir flexible grâce au cloud hybride

security icon

Sécurité

Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies

edge icon

Edge computing

Actualité sur les plateformes qui simplifient les opérations en périphérie

Infrastructure icon

Infrastructure

Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde

application development icon

Applications

À l’intérieur de nos solutions aux défis d’application les plus difficiles

Original series icon

Programmes originaux

Histoires passionnantes de créateurs et de leaders de technologies d'entreprise