Technologie Intel Cluster-On-Die (COD) v systému VMware ESXi
Summary: Intel Cluster při chybě, COD, VMware ESXi, více uzlů NUMA na socket procesoru,
Symptoms
Úvod
V systémech s podporou technologie NUMA jsou paměťové kanály distribuovány mezi procesory. Všechny operace související s pamětí vyžadují operace snoop, aby byla zachována koherence dat mezipaměti. Snooping se používá k testování obsahu mezipaměti na místních i vzdálených procesorech, aby se zjistilo, že kopie požadovaných dat se nachází v některé z mezipamětí. Pokud je technologie NUMA zakázaná (v systému BIOS je povolené prokládání uzlů), režim snoop se automaticky zakáže.
V mikroarchitektuře Intel Haswell jsou k dispozici tři typy režimu snoop. Servery Dell 13. generace (13G) podporují všechny tři režimy snoop, například:
1) Časné slídění
2) Domácí slídil
3) Klastr na zemřít
V tomto blogu diskutujeme o režimu Cluster-On-Die (COD) snoop z hlediska VMware ESXi. Tento blog se zabývá následujícími aspekty.
- Základy CHSK
- Předpoklady pro povolení COD jak z hardwarového hlediska, tak z pohledu systému VMware ESXi
- Několik možností příkazového řádku v systému ESXi, které ukazují rozdíl v výpisu NUMA s povolenou a zakázanou CHSK.
Než se dostaneme k podrobnostem COD, je nutné porozumět typům procesorů na základě počtu jader na mikroarchitektuře procesorů Intel Haswell.
Společnost Intel klasifikovala architekturu procesorů haswell do následujících typů:
1) LCC - Nízký počet jader [4 -8 jader]
2) MCC – střední počet jader [10 – 12 jader]
3) HCC - Vysoký počet jader [14-18 jader]
POZNÁMKA: Tento počet jader se liší pro různé mikroarchitektury Intel.
Co je režim Cluster-On-Die (COD)?
COD je nový režim snoop zavedený z rodiny procesorů Intel Haswell, který má 10 nebo více jader. Pro kategorie procesorů MCC a HCC začlenil Intel dva paměťové řadiče do jednoho procesorového socketu, zatímco procesor LCC má pouze jeden paměťový řadič. Každý paměťový řadič v patici procesoru funguje jako jeden domácí agent [HA].
Na serverech s povolenou CHSK každý procesor logicky rozdělí soket na 2 uzly NUMA Každý uzel NUMA má polovinu celkového počtu fyzických jader a polovinu mezipaměti poslední úrovně (LLC) s jedním domovským agentem. Pojem cluster je tvořen jádry procesoru a odpovídající paměťový řadič jsou seskupeny dohromady a vytvořeny jako klastr na čipu socketu. Každý domovský agent používá dva paměťové kanály a vidí požadavky od menšího počtu logických jader procesoru, čímž poskytuje vyšší šířku pásma paměti a nízkou latenci. Tento provozní režim se používá hlavně k optimalizaci úloh NUMA. Operační systémy zobrazují počet uzlů NUMA načtením tabulek ACPI SRAT.
Grafické znázornění CHSK je následující: -

Na druhém obrázku je vidět, že matrice socketu jednoho procesoru je rozdělena na dva logické uzly, když je povolena COD.
Požadavky:
V této části probereme předpoklady z hlediska hardwaru i systému VMware ESXi.
Hardware:
- Dobírku lze povolit pouze u procesoru Intel Haswell-EP s 10 a více jádry.
- Paměť je třeba osadit do alternativních paměťových kanálů (CH0, CH2, CH1 a CH3). Například servery R730, R730xd, R630 a T630 mají 4 paměťové kanály na socket.

Vezměme si příklad, abychom lépe porozuměli výše uvedenému předpokladu. V případě serveru s pouze dvěma paměťovými moduly na osazený kanál je nutné osadit následující sloty pro konkrétní kanál
- A1 a A3
Se 4 paměťovými moduly
- A1, A3 & B1, B3
S 8 paměťovými moduly
- A1,A3,B1,B3 & A2,A4,B2,B4
POZNÁMKA: K povolení COD je třeba osadit minimálně dva paměťové moduly.
- V nastavení systému BIOS je třeba povolit token Cluster On Die.
- Podpora verze COD od verze vSphere 6.0 v systému VMware na začátku a nyní je podporována také v ESXi 5.5 U3b. Podrobnosti naleznete v článku znalostní databáze VMware 2142499.
Systém VMware ESXi čte ACPI SRAT (System Resource Affinity Tables) a SLIT (System Locality Information Tables) za účelem identifikace a mapování dostupných hardwarových zdrojů. To zahrnuje také mapování uzlů NUMA. Tato část popisuje několik možností příkazového řádku, které mohou uživatelé využít k zobrazení stavu COD ze systému VMware ESXi.
- esxtop nabízí možnost zobrazit osazené uzly NUMA. Po zadání příkazu esxtop stisknutím klávesy "m" zobrazíte podrobnosti o uzlech NUMA následujícím způsobem.
Následující snímky obrazovky jsou pořízeny ze systému se dvěma sockety procesoru a 128GB systémovou pamětí. Ve výchozí konfiguraci bez povoleného COD by esxtop zobrazil dva uzly NUMA s 64 GB přidělenými na uzel NUMA. Následující obrázek ukazuje výstup příkazu esxtop v systému VMware ESXi se zakázanou CHSK. 
Když je povolena doba COD, esxtop uvádí čtyři uzly NUMA namísto dvou, protože čip s jedním socketem procesoru je rozdělen na dva.
Rozhraní esxcli nabízí několik možností příkazového řádku pro zobrazení počtu uzlů NUMA vystavených z hardwaru.
Výhody
V režimu COD vidí operační systém dva uzly NUMA na soket. COD má nejlepší místní latenci. Každý domovský agent vidí požadavky z menšího počtu vláken, které potenciálně nabízejí vyšší šířku pásma paměti. Režim COD má v paměti adresářovou bitovou podporu. Tento režim je nejvhodnější pro úlohy optimalizované pro technologie NUMA. Přečtěte si blog týmu Dell HPC s podrobnostmi o různých režimech sledování (snooping).
Reference
Cause
Není k dispozici
Resolution
Není k dispozici
