Sdílet prostřednictvím


Omezení výpočetní kapacity podle edice SQL Serveru

platí pro:SQL Server

Tento článek popisuje omezení výpočetní kapacity pro edice SQL Serveru a jejich rozdíly ve fyzických a virtualizovaných prostředích se souběžnými procesory SMT (Multithreading). U procesorů od Intelu se SMT nazývá Hyper-Threading.

Přehled

diagram znázorňující mapování na limity výpočetní kapacity

Tato tabulka popisuje zápisy v předchozím diagramu:

Hodnota Popis
0..1 Nula nebo jedna
1 Přesně jeden
1..* Jedna nebo více
0..* Nula nebo více
1..2 Jedna nebo dvě

Abych to dále rozvedl:

  • Virtuální počítač má jeden nebo více virtuálních procesorů.
  • Jeden nebo více virtuálních procesorů je přiděleno přesně jednomu virtuálnímu počítači.
  • Nula nebo jeden virtuální procesor je mapován na nula nebo více logických procesorů. Při mapování virtuálních procesorů na logické procesory je:
    • Jedna až nula: Představuje nevázaný logický procesor, který hostovaný operační systém nepoužívá.
    • Jeden až mnoho: představuje nadměrné závazky.
    • Nula až mnoho: představuje nepřítomnost virtuálního počítače v hostitelském systému. Virtuální počítače proto nepoužívají žádné logické procesory.
  • Soket je přiřazen k nule nebo více jádrům. Jestliže je mapování soketu na jádro:
    • Jedna až nula: představuje prázdný soket. Není nainstalován žádný čip.
    • Jedna až jedna: představuje jednojádrový čip nainstalovaný v soketu. Toto mapování je v těchto dnech vzácné.
    • Jeden až mnoho: představuje vícejádrový čip nainstalovaný v soketu. Typické hodnoty jsou 2, 4 a 8.
  • Jádro je přiřazeno k jednomu nebo dvěma logickým procesorům. Při mapování jader na logické procesory:
    • Jedna k jedné: SMT je vypnutá.
    • Jedna až dvě: SMT je zapnuto.

Následující definice se vztahují na termíny použité v tomto článku:

  • Vlákno nebo logický procesor je jedna logická výpočetní jednotka z pohledu SQL Serveru, operačního systému, aplikace nebo ovladače.

  • Jádro je procesorová jednotka. Může se skládat z jednoho nebo více logických procesorů.

  • Fyzický procesor se může skládat z jednoho nebo více jader. Fyzický procesor je stejný jako balíček procesoru nebo soket.

Omezení počtu logických jader na uzel NUMA na 64

Na serverech s více než 64 logickými procesory na jeden uzel NUMA můžete narazit na problémy včetně výpisů zásobníku. Konfigurace systému BIOS nebo firmwaru může snížit počet logických jader prezentovaných operačnímu systému na maximálně 64 logických procesorů na uzel NUMA.

Opatrnost

Kumulativní aktualizace 11 SQL Serveru 2022 (16.x) zavedla zlomovou změnu, kdy se databázový stroj nespustí, pokud zjistí více než 64 logických jader na jeden uzel NUMA.

Počínaje kumulativní aktualizací 15 systému SQL Server 2022 (16.x) vytvoří instalační program upozornění, že tato konfigurace není podporována a způsobí zastavení a zakázání služby databázového stroje. Upozornění je také součástí protokolů instalace.

Můžete snížit počet logických jader na jeden uzel NUMA v virtuálním počítači Azurezakázáním SMT. U holých instancí SQL Serveru můžete snížit počet logických jader s možnostmi clusteringu SNC (sub-NUMA) nebo uzlů na soket (NPS).

Zakázání SMT na virtuálním počítači Azure

SQL Server má podporovaný limit 64 logických jader na uzel NUMA. V některých případech může virtuální počítač Azure Mv3-series překročit tento limit, což brání spuštění SQL Serveru nebo jeho spuštění s nízkým výkonem. Pokud chcete SMT zakázat, proveďte následující změny pomocí PowerShellu a Editoru registru (reg.exe). Před úpravou nezapomeňte registr zálohovat.

  1. Zkontrolujte počet logických jader. Funkce SMT je povolena, pokud je poměr 2:1 (počet logických jader je dvakrát počet jader).

    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    
  2. Zakažte SMT s následujícími dvěma změnami registru a restartujte virtuální počítač.

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
    
  3. Znovu zkontrolujte počet logických jader. Počet logických jader by měl odpovídat počtu jader.

    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    

Snížení počtu logických jader u holých instancí

Následující části popisují, jak snížit počet logických jader na holých instancích SQL Serveru.

Procesor Intel Xeon

Ve třetí, čtvrté a páté generaci procesorů Intel Xeonmůžete povolit clustering dílčích uzlů NUMA (SNC), dříve označovaný jako Cluster-on-Die (CoD), což vede ke dvěma doménám NUMA v rámci jednoho fyzického soketu.

Poznámka

Šestá generace procesorů Intel Xeon má standardně aktivováno sub-NUMA clusterování (SNC2 nebo SNC3). V některých modelech procesoru by výchozí konfigurace SNC mohla mít za následek více než 64 logických procesorů na uzel NUMA. Pro tyto modely procesoru byste měli aktivovat funkci Intel virtual NUMA v systému BIOS/firmware spolu s SNC2 nebo SNC3.

Nastavení konfigurace Popis
SNC zakázáno 1 Zakáže sub-NUMA seskupování.
SNC2 aktivováno 2 Představuje dva uzly NUMA na jeden soket.
SNC3 povoleno 2 Představuje tři uzly NUMA na soket.
Intel VirtualNuma s podporou 3 Vytvoří více virtuálních uzlů v rámci jednoho fyzického uzlu NUMA.

1 Výchozí pro třetí, čtvrtou a pátou generaci procesorů Intel Xeon.

2 Výchozí pro šestou generaci procesorů Intel Xeon a novějších.

3 k dispozici pouze v šesté generaci procesorů Intel Xeon a novějších verzích. Toto nastavení použijte pro procesory s vysokým počtem jader, kdy počet logických procesorů na uzel NUMA překračuje 64 při použití výchozích hodnot SNC.

Procesor AMD

Na procesorech AMDmůžete povolit různé možnosti uzlů na soket (NPS).

Nastavení konfigurace Popis
NPS0 V systému s duálními sokety představuje NUMA jeden uzel, přičemž všechny paměťové kanály jsou prokládány napříč uzlem.
NPS1 (výchozí) Tato konfigurace představuje jeden uzel NUMA na soket.
NPS2 Tato konfigurace představuje dva uzly NUMA na soket, podobně jako SNC.
NPS4 Tato konfigurace představuje čtyři uzly NUMA na soket.

Poznámky

Systémy s více než jedním fyzickým procesorem nebo systémy s fyzickými procesory, které mají více jader nebo SMT, umožňují operačnímu systému provádět více úloh současně. Každé vlákno vykonávání se zobrazuje jako logický procesor. Pokud má váš počítač například dva čtyřjádrové procesory s povolenou technologií SMT a dvěma vlákny na jádro, máte 16 logických procesorů: 2 procesory x 4 jádra na procesor x 2 vlákna na jádro. Stojí za zmínku, že:

  • Výpočetní kapacita logického procesoru z jednoho vlákna jádra SMT je menší než výpočetní kapacita logického procesoru ze stejného jádra se zakázaným nástrojem SMT.

  • Výpočetní kapacita dvou logických procesorů v jádru s aktivovaným SMT je větší než výpočetní kapacita stejného jádra s deaktivovaným SMT.

Každá edice SQL Serveru má dvě omezení výpočetní kapacity:

  • Maximální počet soketů (nebo fyzických procesorů nebo balíčků procesorů)

  • Maximální počet jader hlášených operačním systémem

Tato omezení platí pro jednu instanci SQL Serveru. Představují maximální výpočetní kapacitu, kterou používá jedna instance. Neomezují server, na kterém může být instance nasazená. Nasazení několika instancí SQL Serveru na stejný fyzický server je efektivní způsob, jak využít výpočetní kapacitu fyzického serveru s více sokety nebo jádry, než umožňují limity kapacity.

Následující tabulka určuje limity výpočetní kapacity pro jednu instanci každé edice SQL Serveru:

Edice SQL Serveru Maximální výpočetní kapacita pro jednu instanci (databázový stroj SQL Serveru) Maximální výpočetní kapacita pro jednu instanci (AS, RS)
Edice Enterprise: Licencování založené na jádrech 1 Maximum operačního systému Maximum operačního systému
Vývojář Maximum operačního systému Maximum operačního systému
Standard Omezeno na méně než 4 sokety nebo 24 jader Omezeno na méně než 4 sokety nebo 24 jader
Vyjádřit Omezeno na méně než 1 soket nebo 4 jádra Omezeno na méně než 1 soket nebo 4 jádra

1 Edice Enterprise s licencí Server + Client Access License (CAL) je omezená na 20 jader na instanci SQL Serveru. (Toto licencování není k dispozici pro nové smlouvy.) V modelu licencování serveru založeného na jádru nejsou žádná omezení.

Ve virtualizovaném prostředí je limit výpočetní kapacity založený na počtu logických procesorů, nikoli na jádrech. Důvodem je, že architektura procesoru není viditelná pro hostující aplikace.

Například server se čtyřmi sokety osazenými čtyřjádrovými procesory, s možností povolit dvě vlákna SMT na jádro, obsahuje 32 logických procesorů s povoleným SMT. Obsahuje ale pouze 16 logických procesorů se zakázaným SMT. Tyto logické procesory je možné mapovat na virtuální počítače na serveru. Výpočetní zatížení virtuálních počítačů na daném logickém procesoru je namapováno na vlákno spuštění na fyzickém procesoru na hostitelském serveru.

SMT můžete chtít zakázat, když je důležitý výkon jednotlivých virtuálních procesorů. SMT můžete nakonfigurovat pomocí nastavení systému BIOS pro procesor během instalace systému BIOS, ale obvykle se jedná o operaci v oboru serveru, která ovlivňuje všechny úlohy spuštěné na serveru. Můžete zvážit oddělení úloh, které běží ve virtualizovaných prostředích, od úloh, které by mohly těžit z zvýšení výkonu SMT ve fyzickém prostředí operačního systému.

Získejte pomoc

Přispívat do dokumentace k SQL

Věděli jste, že obsah SQL můžete upravovat sami? Pokud to uděláte, nejen že vám pomůžete vylepšit naši dokumentaci, ale také jste získali kredit jako přispěvatel na stránku.

Další informace najdete v tématu Jak přispívat do dokumentace k SQL Serveru