Beräkningskapacitetsbegränsningar per utgåva av SQL Server
gäller för:SQL Server
I den här artikeln beskrivs beräkningskapacitetsgränser för utgåvor av SQL Server och hur de skiljer sig åt i fysiska och virtualiserade miljöer med samtidiga SMT-processorer (multithreading). På Intel-processorer kallas SMT Hyper-Threading.
Överblick
Den här tabellen beskriver notationerna i föregående diagram:
Värde | Beskrivning |
---|---|
0..1 | Noll eller ett |
1 | Exakt en |
1..* | En eller flera |
0..* | Noll eller mer |
1..2 | En eller två |
För att utveckla ytterligare:
- En virtuell dator (VM) har en eller flera virtuella processorer.
- En eller flera virtuella processorer allokeras till exakt en virtuell dator.
- Noll eller en virtuell processor mappas till noll eller fler logiska processorer. När mappningen av virtuella processorer till logiska processorer är:
- 1 till 0: representerar en obundet logisk processor som inte används av gästoperativsystemen.
- En till många: representerar en överallokering.
- Noll till många: representerar frånvaron av en virtuell dator i värdsystemet. Så virtuella datorer använder inga logiska processorer.
- Socketar är kopplade till noll eller fler kärnor. När socket-to-core-mappningen är:
- 1 till 0: representerar en tom socket. Inget chip har installerats.
- En till en: representerar ett chip med en kärna som är installerat i socketen. Den här mappningen är sällsynt i dessa dagar.
- En till många: representerar ett flerkärnigt chip installerat i sockeln. Typiska värden är 2, 4 och 8.
- En kärna mappas till en eller två logiska processorer. När mappningen av kärnor till logiska processorer är:
- En till en: SMT är avstängd.
- 1 till 2: SMT är på.
Följande definitioner gäller för de termer som används i den här artikeln:
En tråd eller logisk processor är en logisk beräkningsmotor ur SQL Server-perspektivet, operativsystemet, ett program eller en drivrutin.
En kärna är en processorenhet. Den kan bestå av en eller flera logiska processorer.
En fysisk processor kan bestå av en eller flera kärnor. En fysisk processor är samma som ett processorpaket eller en socket.
Begränsa antalet logiska kärnor per NUMA-nod till 64
Du kan uppleva problem som stackdumpar på servrar med fler än 64 logiska processorer per NUMA-nod. En BIOS- eller inbyggd programvara kan minska antalet logiska kärnor som presenteras för operativsystemet till högst 64 logiska processorer per NUMA-nod.
Försiktighet
SQL Server 2022 (16.x) Kumulativ uppdatering 11 introducerade en icke-bakåtkompatibel ändring, där databasmotorn inte startar om den identifierar fler än 64 logiska kärnor per NUMA-nod.
Från och med SQL Server 2022 (16.x) Kumulativ uppdatering 15, skapar installationsprogrammet en varning om att den här konfigurationen inte stöds och att databasmotortjänsten stoppas och inaktiveras. Varningen ingår också i installationsloggarna.
Du kan minska antalet logiska kärnor per NUMA-nod i en Azure Virtual Machinegenom att inaktivera SMT. För SQL Server-instanser utan operativsystem kan du minska antalet logiska kärnor med alternativ för sub-NUMA-klustring (SNC) eller noder per socket (NPS).
Inaktivera SMT på en virtuell Azure-dator
SQL Server har en gräns på 64 logiska kärnor per NUMA-nod som stöds. I vissa fall kan den virtuella Datorn i Azure Mv3-serien överskrida den här gränsen, vilket hindrar SQL Server från att starta eller tillåta att den körs med försämrad prestanda. Om du vill inaktivera SMT gör du följande ändringar med hjälp av PowerShell- och Registereditorn (reg.exe
). Se till att säkerhetskopiera registret innan du redigerar det.
Kontrollera antalet logiska kärnor. SMT aktiveras om förhållandet är 2:1 (antalet logiska kärnor är dubbelt så många kärnor).
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
Inaktivera SMT med följande två registerändringar och starta sedan om den virtuella datorn.
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
Kontrollera antalet logiska kärnor igen. Antalet logiska kärnor ska matcha antalet kärnor.
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
Minska antalet logiska kärnor för bare metal-instanser
I följande avsnitt beskrivs hur du minskar antalet logiska kärnor på bare metal-instanser av SQL Server.
Intel Xeon CPU
På tredje, fjärde och femte generationens Intel Xeon-processorerkan du aktivera SNC (sub-NUMA-klustring), som tidigare kallades Cluster-on-Die (CoD), vilket resulterar i två NUMA-domäner i en enda fysisk socket.
Obs
Sjätte generationens Intel Xeon-processorer levereras med sub-NUMA-kluster (SNC2 eller SNC3) aktiverade som standard. I vissa CPU-modeller kan standardkonfigurationen för SNC resultera i fler än 64 logiska processorer per NUMA-nod. Du bör aktivera intels virtuella NUMA-funktion i BIOS/inbyggd programvara, tillsammans med SNC2 eller SNC3, för dessa CPU-modeller.
Konfigurationsinställning | Beskrivning |
---|---|
SNC inaktiverad 1 | Inaktiverar sub-NUMA-klustring. |
SNC2 aktiverat 2 | Visar två NUMA-noder per socket. |
SNC3 aktiverat 2 | Presenterar tre NUMA-noder per sockel. |
Intel VirtualNuma aktiverat 3 | Skapar flera virtuella noder i en enda fysisk NUMA-nod. |
1 Standard för tredje, fjärde och femte generationens Intel Xeon-processorer.
2 Default för sjätte generationens Intel Xeon-processorer och senare.
3 Endast tillgängligt på sjätte generationens Intel Xeon-processorer och senare. Använd den här inställningen för processorer med högt kärnantal, där antalet logiska processorer per NUMA-nod överskrider 64 när du använder standardvärdena för SNC.
AMD-processor
På AMD-processorerkan du aktivera flera alternativ för Nodes per Socket (NPS).
Konfigurationsinställning | Beskrivning |
---|---|
NPS0 |
I ett system med dubbla socketar visas NUMA som en enskild nod med alla minneskanaler mellan noden. |
NPS1 (förvalt) |
Den här konfigurationen visar en NUMA-nod per socket. |
NPS2 |
Den här konfigurationen visar två NUMA-noder per socket, ungefär som SNC. |
NPS4 |
Den här konfigurationen visar fyra NUMA-noder per socket. |
Anmärkningar
System med mer än en fysisk processor eller ett system med fysiska processorer som har flera kärnor och/eller SMT gör det möjligt för operativsystemet att köra flera uppgifter samtidigt. Varje körningstråd visas som en logisk processor. Om datorn till exempel har två fyrkärnig processorer med SMT aktiverat och två trådar per kärna har du 16 logiska processorer: 2 processorer x 4 kärnor per processor x 2 trådar per kärna. Det är värt att notera att:
Beräkningskapaciteten för en logisk processor från en enda tråd i en SMT-kärna är mindre än beräkningskapaciteten för en logisk processor från samma kärna med SMT inaktiverat.
Beräkningskapaciteten för de två logiska processorerna i SMT-kärnan är större än beräkningskapaciteten för samma kärna med SMT inaktiverat.
Varje utgåva av SQL Server har två beräkningskapacitetsgränser:
Maximalt antal socketar (eller fysiska processorer eller processorpaket)
Ett maximalt antal kärnor som rapporterats av operativsystemet
Dessa gränser gäller för en enda instans av SQL Server. De representerar den maximala beräkningskapacitet som en enskild instans använder. De begränsar inte servern där instansen kan distribueras. Att distribuera flera instanser av SQL Server på samma fysiska server är ett effektivt sätt att använda beräkningskapaciteten för en fysisk server med fler socketar och/eller kärnor än vad kapacitetsgränserna tillåter.
I följande tabell anges beräkningskapacitetsgränserna för en enda instans av varje utgåva av SQL Server:
SQL Server-utgåva | Maximal beräkningskapacitet för en enskild instans (SQL Server Database Engine) | Maximal beräkningskapacitet för en enskild instans (AS, RS) |
---|---|---|
Enterprise Edition: Kärnbaserad licensiering 1 | Operativsystemsmaximum | Maxgräns för operativsystem |
Utvecklare | Operativsystemsbegränsning | Operativsystemets maximala gräns |
Standard | Begränsat till mindre av 4 sockets eller 24 kärnor | Begränsat till det som är minst av 4 socklar eller 24 kärnor |
Uttrycka | Begränsad till mindre än 1 socket eller 4 kärnor | Begränsad till mindre än 1 socket eller 4 kärnor |
1 Enterprise-utgåva med licensiering för Server + Klientåtkomstlicens (CAL) är begränsad till 20 kärnor per SQL Server-instans. (Den här licensieringen är inte tillgänglig för nya avtal.) Det finns inga gränser i den Core-baserade serverlicensieringsmodellen.
I en virtualiserad miljö baseras beräkningskapacitetsgränsen på antalet logiska processorer, inte kärnor. Anledningen är att processorarkitekturen inte är synlig för gästprogrammen.
En server som till exempel har fyra sockets ifyllda med processorer med fyra kärnor och möjligheten att aktivera två SMT-trådar per kärna innehåller 32 logiska processorer med SMT aktiverat. Men den innehåller bara 16 logiska processorer med SMT inaktiverat. Dessa logiska processorer kan mappas till virtuella datorer på servern. De virtuella datorernas beräkningsbelastning på den logiska processorn mappas till en körningstråd på den fysiska processorn på värdservern.
Du kanske vill inaktivera SMT när prestandan för varje virtuell processor är viktig. Du kan konfigurera SMT med hjälp av en BIOS-inställning för processorn under BIOS-installationen, men det är vanligtvis en serveromfattande åtgärd som påverkar alla arbetsbelastningar som körs på servern. Du kan överväga att separera arbetsbelastningar som körs i virtualiserade miljöer, från arbetsbelastningar som skulle dra nytta av SMT-prestandaökningen i en fysisk operativsystemmiljö.
Relaterat innehåll
- Utgåvor och funktioner som stöds i SQL Server 2022
- Högsta kapacitetsspecifikationer för SQL Server-
- installationsguide för SQL Server
Få hjälp
- Idéer för SQL: Har du förslag på hur du kan förbättra SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tagg sql-server): Ställ frågor till SQL Server
- Stack Overflow (tagg sql-server): Svar på frågor om SQL-utveckling
- Licensvillkor och information för Microsoft SQL Server
- Supportalternativ för företagsanvändare
- Ytterligare hjälp och feedback för SQL Server
Bidra till SQL-dokumentation
Visste du att du kan redigera SQL-innehåll själv? Om du gör det hjälper du inte bara till att förbättra vår dokumentation, utan du får även kredit som deltagare på sidan.
Mer information finns i Så här bidrar du till SQL Server-dokumentationen