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
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.
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"
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
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.
Související obsah
- Edice a podporované funkce SQL Serveru 2022
- specifikace maximální kapacity pro SQL Server
- Průvodce instalací sql Serveru
Získejte pomoc
- Návrhy pro SQL: Máte návrhy na vylepšení SQL Serveru?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (značka sql-server): Položte dotazy k SQL Serveru
- Stack Overflow (značka sql-server): Odpovědi na otázky týkající se vývoje SQL
- licenčních podmínek a informací pro Microsoft SQL Server
- možnosti podpory pro firemní uživatele
- další nápověda a zpětná vazba k SQL Serveru
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