CPU – VMware(Partie 2)

Architecture NUMA

L’architecture NUMA est utilisée sur les systèmes multiprocesseurs symétriques SMP (symetric multiprocessing).

Le NUMA est une approche alternative qui joint plusieurs nœuds petits et économiques utilisant une connexion performante. Chaque nœud contient des processeurs et de la mémoire, tout comme un petit système de SMP. Cependant, un contrôleur mémoire avancé permet à un nœud d’utiliser la mémoire sur tous autres nœuds, créant une image simple de système. Quand un processeur accède à une mémoire qui ne se trouve pas dans son propre nœud (mémoire distante), les données doivent être transférées sur la connexion de NUMA, ce qui est plus lent que d’accéder à la mémoire locale. Les temps d’accès mémoire ne sont pas uniformes et ne dépendent pas de l’emplacement de la mémoire ni du nœud depuis lesquels ils sont consultés, comme le nom de la technologie le suggère.

De façon simple :

ESXi présente des vCPU et des sockets virtuels à chaque machine virtuelle.

  • Un socket virtuel est mappé à un ou plusieurs pCPU, selon le nombre de vCPU.
  • Un pCPU est une construction VMkernel.
  • Chaque pCPU peut consommer un cœur complet ou un thread hyperthreading dans un nœud NUMA

ESXi regroupe les vCPU et la mémoire d’une machine virtuelle en une seule unité appelée client NUMA

Le planificateur ESXi NUMA utilise le client NUMA pour placer initialement une machine virtuelle sur un nœud et pour effectuer des opérations d’équilibrage de charge en cours.

Lorsqu’une machine virtuelle est mise sous tension, le nombre de processeurs virtuels dans une machine virtuelle est comparé au nombre de cœurs physiques dans un nœud NUMA. S’il existe suffisamment de cœurs physiques dans le nœud NUMA pour satisfaire le nombre de processeurs virtuels, un seul client NUMA est créé. Un espace d’adressage mémoire uniforme est présenté à la VM.

Si une machine virtuelle a plus de processeurs virtuels que le nombre de cœurs dans un nœud NUMA, la machine virtuelle est divisée en plusieurs clients NUMA et est appelée une machine virtuelle large (WIDE).

Par exemple, une machine virtuelle à 10 processeurs virtuels est considérée comme une machine virtuelle large sur un système à double socket, huit cœurs par socket :

  • Chaque client NUMA se voit attribuer un nœud domestique.
  • Seuls les cœurs comptent, les hyperthreads ne comptent pas.

Deux clients NUMA sont créés pour cette machine virtuelle et les vCPU sont répartis de manière égale entre les deux clients NUMA.

Les VM larges se voient attribuer deux nœuds NUMA ou plus et se voient de préférence allouer de la mémoire locale à ces nœuds NUMA.

Étant donné que les processeurs virtuels de ces machines virtuelles étendues peuvent parfois avoir besoin d’accéder à la mémoire en dehors de leur propre nœud NUMA, la machine virtuelle peut connaître des latences moyennes d’accès à la mémoire plus élevées que les machines virtuelles qui s’intègrent entièrement dans un nœud NUMA.

Un autre exemple pour mieux comprendre

Lorsqu’une machine virtuelle étendue est créée, une topologie NUMA virtuelle (vNUMA) est créée et présentée au système d’exploitation invité.

vNUMA permet aux systèmes d’exploitation et applications invités compatibles NUMA d’utiliser efficacement l’architecture NUMA du matériel sous-jacent.

La topologie vNUMA présente un nœud vNUMA à la machine virtuelle.

Elle est exposée à la VM si deux conditions sont remplies :

  • La VM contient neuf vCPU ou plus.
  • Le nombre de processeurs virtuels dépasse le nombre de cœurs du nœud NUMA physique.

Résumé

  • Configurez toujours le nombre de vCPU de la VM pour qu’il soit reflété en tant que cœurs par socket unique, jusqu’à ce que vous dépassiez le nombre de cœurs physiques ou la mémoire totale disponible sur un seul nœud NUMA physique.
  • Lorsque vous devez configurer plus de processeurs virtuels qu’il n’y a de cœurs physiques dans le nœud NUMA, ou si vous attribuez plus de mémoire qu’un nœud NUMA n’en contient, vous devez répartir uniformément le nombre de processeurs virtuels sur le nombre minimum de nœuds NUMA.
  • Si vous activez la fonction CPU Hot Add dans une VM, la topologie vNUMA est désactivée : — La VM est démarrée sans vNUMA et utilisera à la place un accès à la mémoire uniforme (UMA), également appelé SMP.
  • Bien qu’il existe plusieurs paramètres vNUMA avancés, ne les utilisez pas à moins que les services de support VMware ne vous le demandent.
Posted on: novembre 10, 2021, by :