Chapitre 5. Ordonnancement des charges de travail compatibles avec les NUMA


Découvrez l'ordonnancement NUMA-aware et comment vous pouvez l'utiliser pour déployer des charges de travail hautes performances dans un cluster OpenShift Container Platform.

Important

L'ordonnancement NUMA-aware est une fonctionnalité de l'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

L'opérateur de ressources NUMA vous permet de planifier des charges de travail hautes performances dans la même zone NUMA. Il déploie un agent d'exportation des ressources de nœuds qui signale les ressources NUMA de nœuds de cluster disponibles, et un planificateur secondaire qui gère les charges de travail.

5.1. À propos de l'ordonnancement NUMA

L'accès non uniforme à la mémoire (NUMA) est une architecture de plate-forme informatique qui permet à différents processeurs d'accéder à différentes régions de la mémoire à des vitesses différentes. La topologie des ressources NUMA fait référence à l'emplacement des unités centrales, de la mémoire et des périphériques PCI les uns par rapport aux autres dans le nœud de calcul. Les ressources co-localisées sont dites être dans le même NUMA zone. Pour les applications à haute performance, le cluster doit traiter les charges de travail des pods dans une seule zone NUMA.

L'architecture NUMA permet à une unité centrale dotée de plusieurs contrôleurs de mémoire d'utiliser toute la mémoire disponible dans les complexes d'unités centrales, quel que soit l'emplacement de la mémoire. Cela permet d'accroître la flexibilité au détriment des performances. Une unité centrale traitant une charge de travail utilisant une mémoire située en dehors de sa zone NUMA est plus lente qu'une charge de travail traitée dans une seule zone NUMA. En outre, pour les charges de travail soumises à des contraintes d'E/S, l'interface réseau située dans une zone NUMA éloignée ralentit la vitesse à laquelle les informations peuvent atteindre l'application. Les charges de travail à haute performance, telles que les charges de travail de télécommunications, ne peuvent pas fonctionner selon les spécifications dans ces conditions. L'ordonnancement NUMA-aware permet d'aligner les ressources de calcul du cluster (CPU, mémoire, périphériques) demandées dans la même zone NUMA afin de traiter efficacement les charges de travail sensibles à la latence ou très performantes. L'ordonnancement NUMA-aware améliore également la densité de pods par nœud de calcul pour une meilleure efficacité des ressources.

La logique de planification par défaut du planificateur de pods d'OpenShift Container Platform prend en compte les ressources disponibles de l'ensemble du nœud de calcul, et non des zones NUMA individuelles. Si l'alignement des ressources le plus restrictif est demandé dans le gestionnaire de topologie des kubelets, des conditions d'erreur peuvent survenir lors de l'admission du pod sur un nœud. Inversement, si l'alignement des ressources le plus restrictif n'est pas demandé, le module peut être admis dans le nœud sans que l'alignement des ressources soit correct, ce qui entraîne des performances moins bonnes ou imprévisibles. Par exemple, la création de pods avec des statuts Topology Affinity Error peut se produire lorsque le planificateur de pods prend des décisions de planification sous-optimales pour des charges de travail de pods garanties, car il ne sait pas si les ressources demandées par le pod sont disponibles. Les décisions d'inadéquation de l'ordonnancement peuvent entraîner des retards indéfinis dans le démarrage des modules. En outre, en fonction de l'état du cluster et de l'allocation des ressources, de mauvaises décisions d'ordonnancement de pods peuvent entraîner une charge supplémentaire sur le cluster en raison de l'échec des tentatives de démarrage.

L'opérateur de ressources NUMA déploie un planificateur secondaire de ressources NUMA personnalisé et d'autres ressources pour atténuer les lacunes du planificateur de pods par défaut d'OpenShift Container Platform. Le diagramme suivant fournit un aperçu de haut niveau de la planification de pods tenant compte de la NUMA.

Figure 5.1. Vue d'ensemble de l'ordonnancement NUMA

Diagram of NUMA-aware scheduling that shows how the various components interact with each other in the cluster
API NodeResourceTopology
L'API NodeResourceTopology décrit les ressources de la zone NUMA disponibles dans chaque nœud de calcul.
Ordonnanceur compatible avec les NUMA
L'ordonnanceur secondaire NUMA-aware reçoit des informations sur les zones NUMA disponibles de l'API NodeResourceTopology et planifie les charges de travail à haute performance sur un nœud où elles peuvent être traitées de manière optimale.
Exportateur de topologie de nœuds
L'exportateur de topologie de nœuds expose les ressources de la zone NUMA disponibles pour chaque nœud de calcul à l'API NodeResourceTopology. Le démon de l'exportateur de topologie de nœuds suit l'allocation des ressources de la kubelet à l'aide de l'API PodResources.
API PodResources
L'API PodResources est locale à chaque nœud et expose la topologie des ressources et les ressources disponibles au kubelet.

Ressources supplémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.