Lezen in het Engels

Delen via


Limieten voor rekencapaciteit per editie van SQL Server

van toepassing op:SQL Server-

In dit artikel worden de limieten voor rekencapaciteit voor edities van SQL Server beschreven en hoe deze verschillen in fysieke en gevirtualiseerde omgevingen met gelijktijdige MULTITHREADING-processors (SMT). Op Intel-CPU's wordt SMT Hyper-Threading-genoemd.

Overzicht

diagram met de toewijzingen voor limieten voor rekencapaciteit.

In deze tabel worden de notaties in het voorgaande diagram beschreven:

Waarde Beschrijving
0..1 Nul of één
1 Precies één
1..* Een of meer
0..* Nul of meer
1..2 Een of twee

Om verder uit te werken:

  • Een virtuele machine (VM) heeft een of meer virtuele processors.
  • Een of meer virtuele processors worden toegewezen aan precies één virtuele machine.
  • Nul of één virtuele processor wordt toegewezen aan nul of meer logische processors. Wanneer de toewijzing van virtuele processors aan logische processors is:
    • Eén tot nul: vertegenwoordigt een niet-afhankelijke logische processor die niet wordt gebruikt door de gastbesturingssystemen.
    • Een-op-veel-relatie: vertegenwoordigt een overtoewijzing.
    • Nul tot veel: vertegenwoordigt het ontbreken van virtuele machines op het hostsysteem. Vm's gebruiken dus geen logische processors.
  • Een socket wordt gekoppeld aan nul of meer kernen. Wanneer de socket-to-core-toewijzing het volgende is:
    • Eén tot nul: vertegenwoordigt een lege socket. Er is geen chip geïnstalleerd.
    • Eén op één: vertegenwoordigt een chip met één kern die in de socket is geïnstalleerd. Deze toewijzing is tegenwoordig zeldzaam.
    • Een op veel: vertegenwoordigt een chip met meerdere kernen die in de socket is geïnstalleerd. Typische waarden zijn 2, 4 en 8.
  • Een kern wordt toegewezen aan een of twee logische processors. Wanneer de toewijzing van kernen aan logische processors het volgende is:
    • Eén op één: SMT is uitgeschakeld.
    • Eén op twee: SMT is ingeschakeld.

De volgende definities zijn van toepassing op de termen die in dit artikel worden gebruikt:

  • Een thread of logische processor is één logische berekeneenheid vanuit het perspectief van SQL Server, het besturingssysteem, een applicatie of een stuurprogramma.

  • Een kern is een processoreenheid. Het kan bestaan uit een of meer logische processors.

  • Een fysieke processor kan bestaan uit een of meer kernen. Een fysieke processor is hetzelfde als een processorpakket of een socket.

Aantal logische kernen per NUMA-knooppunt beperken tot 64

U kunt problemen ondervinden, zoals stackdumps op servers met meer dan 64 logische processors per NUMA-knooppunt. Een BIOS- of firmwareconfiguratie kan het aantal logische kernen dat aan het besturingssysteem wordt gepresenteerd, verminderen tot maximaal 64 logische processors per NUMA-knooppunt.

Waarschuwing

In SQL Server 2022 (16.x) cumulatieve update 11 is een belangrijke wijziging geïntroduceerd, waarbij de database-engine niet start als er meer dan 64 logische kernen per NUMA-knooppunt worden gedetecteerd.

Vanaf SQL Server 2022 (16.x) Cumulatieve update 15 produceert Setup een waarschuwing dat deze configuratie niet wordt ondersteund en dat de Database Engine-service wordt gestopt en uitgeschakeld. De waarschuwing wordt ook opgenomen in de installatielogboeken.

U kunt het aantal logische kernen per NUMA-knooppunt verminderen in een virtuele Azure-machinedoor SMT uit te schakelen. Voor bare-metal SQL Server-exemplaren kunt u het aantal logische kernen verminderen met opties voor sub-NUMA-clustering (SNC) of knooppunten per socket (NPS).

SMT uitschakelen op een virtuele Azure-machine

SQL Server heeft een ondersteunde limiet van 64 logische kernen per NUMA-knooppunt. In sommige gevallen kan de VM uit de Azure Mv3-serie deze limiet overschrijden, waardoor SQL Server niet kan worden gestart of kan worden uitgevoerd met verminderde prestaties. Als u SMT wilt uitschakelen, moet u de volgende wijzigingen aanbrengen met PowerShell- en de Register-editor (reg.exe). Zorg ervoor dat u een back-up van het register maakt voordat u het bewerkt.

  1. Controleer het aantal logische kernen. SMT is ingeschakeld als de verhouding 2:1 is (het aantal logische kernen is tweemaal het aantal kernen).

    PowerShell
    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    
  2. Schakel SMT uit met de volgende twee registerwijzigingen en start de VM vervolgens opnieuw op.

    Windows Command Prompt
    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. Controleer nogmaals het aantal logische kernen. Het aantal logische kernen moet overeenkomen met het aantal kernen.

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

Verminder het aantal logische kernen op bare-metal instanties

In de volgende secties wordt beschreven hoe u het aantal logische kernen kunt verminderen op bare-metal-exemplaren van SQL Server.

Intel Xeon CPU

Op de derde, vierde en vijfde generatie Intel Xeon-CPU'skunt u sub-NUMA-clustering (SNC), voorheen Cluster-on-Die (CoD) inschakelen, wat resulteert in twee NUMA-domeinen binnen één fysieke socket.

Notitie

Intel Xeon-CPU's van de zesde generatie worden standaard geleverd met sub-NUMA-clustering (SNC2 of SNC3). In sommige CPU-modellen kan de standaard-SNC-configuratie leiden tot meer dan 64 logische processors per NUMA-knooppunt. Activeer de intel virtuele NUMA-functie in de BIOS/firmware, naast SNC2 of SNC3, voor deze CPU-modellen.

Configuratie-instelling Beschrijving
SNC uitgeschakeld 1 Schakelt sub-NUMA-clustering uit.
SNC2 ingeschakeld 2 Geeft twee NUMA-knooppunten per socket weer.
SNC3 ingeschakeld 2 Geeft drie NUMA-knooppunten per socket weer.
Intel VirtualNuma ingeschakeld 3 Hiermee maakt u meerdere virtuele knooppunten binnen één fysiek NUMA-knooppunt.

1 Standaard voor INTEL Xeon-CPU's van de derde, vierde en vijfde generatie.

2 Standaard voor Intel Xeon-CPU's van de zesde generatie en hoger.

3 Alleen beschikbaar op Intel Xeon-CPU's van de zesde generatie en later. Gebruik deze instelling voor CPU's met een hoog kernaantal, waarbij het aantal logische processors per NUMA-knooppunt groter is dan 64 wanneer de SNC-standaardwaarden worden gebruikt.

AMD CPU

Op AMD-CPU'skunt u verschillende opties voor knooppunten per socket (NPS) inschakelen.

Configuratie-instelling Beschrijving
NPS0 In een systeem met dubbele sockets wordt NUMA weergegeven als één knooppunt met alle geheugenkanalen die zijn verdeeld over het knooppunt.
NPS1 (standaard) Deze configuratie geeft één NUMA-knooppunt per socket weer.
NPS2 Deze configuratie geeft twee NUMA-knooppunten per socket weer, vergelijkbaar met SNC.
NPS4 Deze configuratie bevat vier NUMA-knooppunten per socket.

Opmerkingen

Systemen met meer dan één fysieke processor of systemen met fysieke processors met meerdere kernen en/of SMT stellen het besturingssysteem in staat om meerdere taken tegelijk uit te voeren. Elke thread van uitvoering wordt weergegeven als een logische processor. Als uw computer bijvoorbeeld twee quad-coreprocessoren heeft waarvoor SMT is ingeschakeld en twee threads per kern, hebt u 16 logische processors: 2 processoren x 4 kernen per processor x 2 threads per kern. Het is de moeite waard om te noteren dat:

  • De rekencapaciteit van een logische processor van één thread van een SMT-kern is kleiner dan de rekencapaciteit van een logische processor van diezelfde kern met SMT uitgeschakeld.

  • De rekencapaciteit van de twee logische processors in de SMT-kern is groter dan de rekencapaciteit van dezelfde kern waarvoor SMT is uitgeschakeld.

Elke editie van SQL Server heeft twee limieten voor rekencapaciteit:

  • Een maximum aantal sockets (of fysieke processors of processorpakketten)

  • Een maximum aantal kernen zoals gerapporteerd door het besturingssysteem

Deze limieten zijn van toepassing op één exemplaar van SQL Server. Ze vertegenwoordigen de maximale rekencapaciteit die door één exemplaar wordt gebruikt. Ze beperken niet de server waarop het exemplaar kan worden geïmplementeerd. Het implementeren van meerdere exemplaren van SQL Server op dezelfde fysieke server is een efficiënte manier om de rekencapaciteit van een fysieke server te gebruiken met meer sockets en/of kernen dan de capaciteitslimieten toestaan.

De volgende tabel bevat de limieten voor de rekencapaciteit voor één exemplaar van elke editie van SQL Server:

SQL Server-editie Maximale rekencapaciteit voor één exemplaar (SQL Server Database Engine) Maximale rekencapaciteit voor één exemplaar (AS, RS)
Enterprise Edition: Licenties op basis van cores 1 Maximum aantal besturingssysteem Maximum aantal besturingssysteem
Ontwikkelaar Maximum aantal besturingssysteem Maximum aantal besturingssysteem
Standaard Beperkt tot minder van 4 sockets of 24 kernen Beperkt tot minder van 4 sockets of 24 kernen
Uitdrukken Beperkt tot minder van 1 socket of 4 kernen Beperkt tot minder van 1 socket of 4 kernen

1 Enterprise Edition met CAL-licenties (Server + Client Access License) is beperkt tot 20 kernen per SQL Server-exemplaar. (Deze licentie is niet beschikbaar voor nieuwe overeenkomsten.) Er gelden geen limieten onder het Core-model voor serverlicenties.

In een gevirtualiseerde omgeving is de limiet voor rekencapaciteit gebaseerd op het aantal logische processors, niet op kernen. De reden hiervoor is dat de processorarchitectuur niet zichtbaar is voor de gasttoepassingen.

Een server met vier sockets gevuld met quad-core processors en de mogelijkheid om twee SMT-threads per kern in te schakelen, bevat bijvoorbeeld 32 logische processors waarvoor SMT is ingeschakeld. Maar het bevat slechts 16 logische processors met SMT uitgeschakeld. Deze logische processors kunnen worden toegewezen aan virtuele machines op de server. De rekenbelasting van de virtuele machines op die logische processor wordt toegewezen aan een thread van uitvoering op de fysieke processor op de hostserver.

U kunt SMT uitschakelen wanneer de prestaties voor elke virtuele processor belangrijk zijn. U kunt SMT configureren met behulp van een BIOS-instelling voor de processor tijdens de BIOS-installatie, maar dit is meestal een bewerking met serverbereik die van invloed is op alle workloads die op de server worden uitgevoerd. U kunt overwegen workloads die worden uitgevoerd in gevirtualiseerde omgevingen te scheiden van workloads die baat hebben bij de SMT-prestatieverbeteringen in een fysieke besturingssysteemomgeving.

Hulp krijgen

Bijdragen aan SQL-documentatie

Wist u dat u zelf SQL-inhoud kunt bewerken? Als u dit doet, helpt u niet alleen onze documentatie te verbeteren, maar krijgt u ook erkenning als een bijdrager aan de pagina.

Zie Bijdragen aan sql Server-documentatie voor meer informatie