Technologie Intel Cluster-On-Die (COD) sur VMware ESXi
Summary: Cluster Intel sur die, COD, VMware ESXi, plusieurs nœuds NUMA par socket de processeur,
Symptoms
Introduction
Dans les systèmes compatibles NUMA, les canaux de mémoire sont répartis entre les processeurs. Toutes les opérations liées à la mémoire nécessitent des opérations de surveillance afin de maintenir la cohérence des données de cache. La surveillance est utilisée pour sonder le contenu du cache sur les processeurs locaux et distants afin de trouver la copie des données demandées dans l’un des caches. Si NUMA est désactivé (l’entrelacement de nœuds est activé dans le BIOS), le mode surveillance est désactivé automatiquement.
Il existe trois types de modes de surveillance disponibles dans la microarchitecture Intel Haswell. Les serveurs Dell de 13e génération (13G) prennent en charge les trois modes de surveillance, tels que :
1) Espionnage précoce
2) Espionnage à la maison
3) Cluster sur moule
Dans ce blog, nous abordons le mode de surveillance Cluster-On-Die (COD) en termes de VMware ESXi. Ce blog couvre les aspects suivants.
- Principes de base de la DCO
- Conditions préalables à l’activation de COD du point de vue matériel et VMware ESXi
- Quelques options de ligne de commande dans ESXi qui montrent la différence dans la liste NUMA avec COD activé et désactivé.
Avant d’entrer dans les détails de COD, il est nécessaire de comprendre les types de processeurs en fonction du nombre de cœurs sur la microarchitecture du processeur Intel Haswell.
Intel a classé l’architecture du processeur haswell dans les types suivants :
1) LCC : faible nombre de cœurs [4 à 8 cœurs]
2) MCC - Nombre moyen de cœurs [10 à 12 cœurs]
3) HCC - Nombre élevé de cœurs [14-18 cœurs]
Remarque : Ce type de nombre de cœurs varie en fonction de la microarchitecture Intel.
Qu’est-ce que le mode Cluster On-Die (COD) ?
COD est un nouveau mode de surveillance introduit à partir de la famille de processeurs Intel Haswell qui possède 10 cœurs ou plus. Pour les catégories de processeurs MCC et HCC, Intel a incorporé deux contrôleurs de mémoire sur un socket de processeur unique, tandis que le processeur LCC n’a qu’un seul contrôleur de mémoire. Chaque contrôleur de mémoire d’un socket de processeur agit comme un agent domestique [HA].
Sur les serveurs compatibles COD, chaque processeur divise logiquement le socket en 2 nœuds NUMA Chaque nœud NUMA possède la moitié du nombre total de cœurs physiques et la moitié du cache de dernier niveau (LLC) avec un agent à domicile. Le terme cluster se présente sous la forme de cœurs de processeur et le contrôleur de mémoire correspondant est regroupé et formé en cluster sur la puce du socket. Chaque agent d’accueil utilise deux canaux de mémoire et voit les demandes provenant d’un nombre inférieur de cœurs logiques de processeur, ce qui permet d’obtenir une bande passante mémoire plus élevée et une faible latence. Ce mode de fonctionnement est principalement utilisé pour optimiser les charges applicatives NUMA. Le système d’exploitation affiche le nombre de nœuds NUMA en lisant les tables ACPI SRAT
Une représentation graphique de la DCO est la suivante :

Sur la deuxième image, on peut voir que la matrice du socket à processeur unique est divisée en deux nœuds logiques lorsque COD est activé.
Conditions préalables :
Dans cette section, nous aborderons les conditions préalables du point de vue du matériel et de VMware ESXi.
Matériel :
- COD peut être activé uniquement sur les processeurs Intel Haswell-EP avec 10 cœurs ou plus.
- La mémoire doit être renseignée sur d’autres canaux de mémoire (CH0, CH2, CH1 et CH3). Par exemple, le serveur R730, R730xd, R630 et T630 dispose de 4 canaux de mémoire par socket.

Prenons un exemple pour mieux comprendre les conditions préalables ci-dessus. Dans le cas d’un serveur avec seulement deux modules de mémoire par canal, les logements suivants doivent être remplis pour un canal spécifique
- A1 et A3
Avec 4 modules de mémoire,
- A1, A3, B1, B3
Avec 8 modules de mémoire,
- A1, A3, B1, B3 et A2, A4, B2, B4
Remarque : Au moins deux modules de mémoire doivent être installés pour activer COD.
- Le jeton Cluster On Die doit être activé dans les paramètres du BIOS.
- La prise en charge de COD par VMware a commencé à partir de vSphere 6.0 au début et est désormais également prise en charge dans ESXi 5.5 U3b. Pour plus d’informations, reportez-vous à l'2142499 de la base de connaissances VMware.
VMware ESXi lit les tableaux ACPI SRAT (System Resource Affinity Tables) et SLIT (System Locality Information Tables) pour identifier et mapper les ressources matérielles disponibles. Cela inclut également le mappage des nœuds NUMA. Cette section présente quelques options de ligne de commande que les utilisateurs peuvent utiliser pour afficher l’état COD à partir de VMware ESXi.
- esxtop fournit une option permettant de voir les nœuds NUMA renseignés. Lorsque la commande esxtop est saisie, appuyez sur « m » pour afficher les détails des nœuds NUMA, comme suit.
Les captures d’écran suivantes proviennent d’un système doté de deux sockets de processeur et d’une mémoire système de 128 Go. Dans la configuration par défaut sans COD activé, esxtop affiche deux nœuds NUMA avec 64 Go alloués par nœud NUMA. La figure suivante affiche la sortie de la commande esxtop dans VMware ESXi avec COD désactivé. 
Lorsque COD est activé, esxtop répertorie quatre nœuds NUMA au lieu de deux, car la puce du socket à processeur unique est divisée en deux.
esxcli fournit quelques options de ligne de commande pour afficher le nombre de nœuds NUMA exposés à partir du matériel.
Avantages
En mode COD, le système d’exploitation voit deux nœuds NUMA par socket. COD a la meilleure latence locale. Chaque agent à domicile voit les demandes provenant d’un nombre inférieur de threads, offrant potentiellement une bande passante mémoire plus élevée. Le mode COD prend en charge les bits du répertoire en mémoire. Ce mode est idéal pour les charges applicatives hautement optimisées NUMA. Reportez-vous à un blog publié par l’équipe HPC de Dell détaillant les différents modes de surveillance.
Références
Article de la base de connaissances VMware sur la prise en charge Intel COD 
Cause
Sans objet
Resolution
Sans objet