Megosztás:


Számítási kapacitás korlátai az SQL Server kiadása szerint

A következőkre vonatkozik:SQL Server

Ez a cikk az SQL Server kiadásaira vonatkozó számítási kapacitáskorlátokat és az egyidejű többszálú (SMT) processzorokkal rendelkező fizikai és virtualizált környezetekben való eltéréseket ismerteti. Intel processzorokon az SMT neve Hyper-Threading.

Áttekintés

diagram a számítási kapacitás korlátainak leképezését mutatja be.

Ez a táblázat az előző diagram jelöléseit ismerteti:

Érték Leírás
0..1 Nulla vagy egy
1 Pontosan egy
1..* Egy vagy több
0..* Nulla vagy több
1..2 Egy vagy két

További részletek:

  • Egy virtuális gép (VM) egy vagy több virtuális processzorral rendelkezik.
  • Egy vagy több virtuális processzor pontosan egy virtuális géphez van lefoglalva.
  • Nulla vagy több logikai processzorhoz van hozzárendelve egy vagy egy virtuális processzor. Ha a virtuális processzorok logikai processzorokhoz való leképezése a következő:
    • Egy a nullához: egy kötetlen logikai processzort jelöl, amelyet a vendég operációs rendszerek nem használnak.
    • Egy a többhöz: egy túlvállalást jelöl.
    • A semennyitől a sokig: a gazdarendszeren nem található virtuális gép. Így a virtuális gépek nem használnak logikai processzorokat.
  • A foglalat nulla vagy több magra képezhető le. Amikor a socket-mag leképezés a következő:
    • Egy a nullához: üres aljzatot jelöl. Nincs chip telepítve.
    • Egy az egyben: egy egymagos chipet jelöl, amely a foglalatba van telepítve. Ez a leképezés manapság ritka.
    • Egy a sokhoz: egy többmagos chipet jelöl, amelyet az aljzatba telepítenek. A tipikus értékek a 2, a 4 és a 8.
  • Egy mag egy vagy két logikai processzorra van leképezve. Ha a magok logikai processzorokhoz való leképezése a következő:
    • Egy az egyben: az SMT ki van kapcsolva.
    • 1-2: Az SMT be van kapcsolva.

A cikkben használt kifejezésekre a következő definíciók vonatkoznak:

  • A szál- vagy logikai processzor az SQL Server, az operációs rendszer, az alkalmazás vagy az illesztőprogram szempontjából egy logikai számítási motor.

  • A mag egy processzoregység. Egy vagy több logikai processzorból állhat.

  • A fizikai processzorok egy vagy több magból állhatnak. A fizikai processzor megegyezik a processzorcsomaggal vagy a szoftvercsatornával.

NUMA-csomópontonkénti logikai magok számának korlátozása 64-re

Nagyobb mint 64 logikai processzort tartalmazó kiszolgálókon NUMA-csomópontonként olyan problémák léphetnek fel, mint például a veremlerakódás. A BIOS- vagy belsővezérlőprogram-konfiguráció nUMA-csomópontonként legfeljebb 64 logikai processzorra csökkentheti az operációs rendszer számára megjelenített logikai magok számát.

Figyelem

Az SQL Server 2022 (16.x) 11. kumulatív frissítése kompatibilitástörő változást vezetett be, amely miatt az adatbázismotor nem indul el, ha NUMA-csomópontonként több mint 64 logikai magot észlel.

Az SQL Server 2022 (16.x) 15. kumulatív frissítésétől kezdve a telepítő figyelmeztetést küld arról, hogy ez a konfiguráció nem támogatott, és az adatbázismotor szolgáltatás leállásához és letiltásához vezet. A figyelmeztetés a telepítési naplókban is szerepel.

Az SMT letiltásával csökkentheti egy Azure-beli virtuális gépNUMA-csomópontonkénti logikai magszámát. fizikai SQL Server-példányok esetében csökkentheti a logikai magok számát az NUMA-alfürtök (SNC) vagy a csomópontok foglalatonkénti (NPS) beállításaival.

SMT letiltása Azure-beli virtuális gépen

Az SQL Server NUMA-csomópontonként 64 logikai magot támogat. Bizonyos esetekben az Azure Mv3-sorozatú virtuális gép túllépheti ezt a korlátot, ami megakadályozza, hogy az SQL Server elinduljon, vagy csökkentett teljesítmény mellett fusson. Az SMT letiltásához hajtsa végre a következő módosításokat a PowerShell- és a Beállításszerkesztő (reg.exe) használatával. Mindenképpen biztonsági másolatot készít a beállításjegyzékről a szerkesztés előtt.

  1. Ellenőrizze a logikai magok számát. Az SMT engedélyezve van, ha az arány 2:1 (a logikai magok száma a magok számának kétszerese).

    Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
    
  2. Tiltsa le az SMT-t a következő két beállításjegyzék-módosítással, majd indítsa újra a virtuális gépet.

    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. Ellenőrizze ismét a logikai magok számát. A logikai magok számának meg kell egyeznie a magok számával.

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

A logikai magok számának csökkentése operációs rendszer nélküli példányokon

A következő szakaszok bemutatják, hogyan csökkenthető az SQL Server operációs rendszer nélküli példányainak logikai magjainak száma.

Intel Xeon CPU

A harmadik, negyedik és ötödik generációs Intel Xeon CPU-klehetővé teszik a NUMA-alfürtök (SNC) használatát, amelyet korábban Cluster-on-Die-nek (CoD) hívtak, ami két NUMA-tartományt eredményez egyetlen fizikai foglalaton belül.

Jegyzet

A hatodik generációs Intel Xeon processzorok esetében az alapértelmezett beállítás az, hogy a NUMA-alfürtözés (SNC2 vagy SNC3) engedélyezve van. Egyes CPU-modellekben az alapértelmezett SNC-konfiguráció több mint 64 logikai processzort eredményezhet NUMA-csomópontonként. Az Intel virtuális NUMA funkcióját az SNC2 vagy az SNC3 mellett a BIOS-ban/belső vezérlőprogramban is aktiválnia kell ezekhez a CPU-modellekhez.

Konfigurációs beállítás Leírás
Az SNC le van tiltva 1 Letiltja az al-NUMA-fürtözést.
SNC2-kompatibilis 2 Szoftvercsatornánként két NUMA-csomópontot jelenít meg.
SNC3 engedélyezve 2 Csatlakozónként három NUMA-csomópontot mutat be.
Intel VirtualNuma engedélyezve van 3 Több virtuális csomópontot hoz létre egyetlen fizikai NUMA-csomóponton belül.

1 Alapértelmezett érték harmadik, negyedik és ötödik generációs Intel Xeon processzorokhoz.

2 Alapértelmezett a hatodik generációs Intel Xeon processzorokhoz és újabb verziókhoz.

3 Csak a hatodik generációs Intel Xeon processzorokon és újabb verziókban érhető el. Ezt a beállítást a magas magszámú processzorokhoz használja, ahol az SNC alapértelmezett beállításainak használatakor az NUMA-csomópontonkénti logikai processzorok száma meghaladja a 64-et.

AMD CPU

Az AMD CPU-konkülönböző csomópontok foglalatonkénti (NPS) opcióit engedélyezheti.

Konfigurációs beállítás Leírás
NPS0 A kettős foglalatú rendszerben a NUMA egyetlen csomópontként jelenik meg, amelyben az összes memóriacsatorna összefonódva van a csomóponton.
NPS1 (alapértelmezett) Ez a konfiguráció szoftvercsatornánként egy NUMA-csomópontot jelenít meg.
NPS2 Ez a konfiguráció szoftvercsatornánként két NUMA-csomópontot mutat be, hasonlóan az SNC-hez.
NPS4 Ez a konfiguráció szoftvercsatornánként négy NUMA-csomópontot mutat be.

Megjegyzések

A több fizikai processzorral rendelkező vagy több maggal és/vagy SMT-vel rendelkező fizikai processzorokkal rendelkező rendszerek lehetővé teszik, hogy az operációs rendszer egyszerre több feladatot is végrehajthasson. Minden végrehajtási szál logikai processzorként jelenik meg. Ha például a számítógép két négymagos processzorral rendelkezik, amelyeken az SMT engedélyezve van, és magonként két szál van, akkor 16 logikai processzora van: processzoronként 2 processzor x 4 mag, processzoronként 2 szál. Érdemes megjegyezni, hogy:

  • Az SMT-mag egyetlen szálából származó logikai processzor számítási kapacitása kisebb, mint egy logikai processzor számítási kapacitása ugyanabból a magból, és az SMT le van tiltva.

  • Az SMT-mag két logikai processzorának számítási kapacitása nagyobb, mint ugyanazon mag számítási kapacitása, ha az SMT le van tiltva.

Az SQL Server minden kiadása két számítási kapacitási korlátot biztosít:

  • A foglalatok (vagy fizikai processzorok vagy processzorcsomagok) maximális száma

  • Az operációs rendszer által jelentett magok maximális száma

Ezek a korlátozások az SQL Server egyetlen példányára vonatkoznak. Ezek az egyetlen példány által használt maximális számítási kapacitást jelölik. Nem korlátozzák azt a kiszolgálót, ahol a példány üzembe helyezhető. Valójában az SQL Server több példányának ugyanazon a fizikai kiszolgálón való üzembe helyezése hatékony módszer egy olyan fizikai kiszolgáló számítási kapacitásának használatára, amelynek több szoftvercsatornája és/vagy magja van, mint amennyit a kapacitáskorlátok megengednek.

Az alábbi táblázat az SQL Server egyes kiadásainak egyetlen példányára vonatkozó számítási kapacitáskorlátokat határozza meg:

SQL Server-kiadás Egyetlen példány maximális számítási kapacitása (SQL Server-adatbázismotor) Egyetlen példány maximális számítási kapacitása (AS, RS)
Vállalati kiadás: Magra alapozott licencelés 1 Operációs rendszer maximális száma Operációs rendszer maximális száma
fejlesztő Operációs rendszer maximális száma Operációs rendszer maximális száma
Standard 2 4 foglalat vagy 32 mag kisebbre korlátozva 4 foglalat vagy 32 mag kisebbre korlátozva
Expressz 1 aljzat vagy 4 mag kisebbre korlátozva 1 aljzat vagy 4 mag kisebbre korlátozva

1 Enterprise-kiadás a Server + Client Access License (CAL) licenccel SQL Server-példányonként legfeljebb 20 magra korlátozódik. (Ez a licenc nem érhető el az új szerződésekhez.) A core-alapú kiszolgálólicencelési modellnek nincsenek korlátai.

2 Az SQL Server 2022 (16.x) és korábbi verzióiban a korlát 4 szoftvercsatornából vagy 24 magból kisebb.

Virtualizált környezetben a számítási kapacitás korlátja a logikai processzorok számán alapul, nem a magokon. Ennek az az oka, hogy a processzorarchitektúra nem látható a vendégalkalmazások számára.

Egy négycsatornás processzorokkal feltöltött, magonként két SMT-szálat engedélyező kiszolgáló például 32 logikai processzort tartalmaz, amelyeken az SMT engedélyezve van. De csak 16 logikai processzort tartalmaz, és az SMT le van tiltva. Ezek a logikai processzorok leképezhetők a kiszolgálón lévő virtuális gépekre. A virtuális gépek számítási terhelése a logikai processzoron a gazdakiszolgáló fizikai processzorán futó végrehajtási szálra van leképezve.

Érdemes lehet letiltani az SMT-t, ha az egyes virtuális processzorok teljesítménye fontos. Az SMT konfigurálásához használja a processzor BIOS beállítását, de ez általában egy kiszolgálóra kiterjedő művelet, amely a kiszolgálón futó összes számítási feladatot érinti. Érdemes lehet elkülöníteni a virtualizált környezetekben futó számítási feladatokat azoktól a számítási feladatoktól, amelyek a fizikai operációs rendszer környezetében az SMT teljesítménynöveléséből profitálnának.

Segítség kérése

Közreműködés az SQL dokumentációjában

Tudta, hogy saját maga szerkesztheti az SQL-tartalmakat? Ha így tesz, nem csak a dokumentáció fejlesztésében segít, hanem az oldal közreműködőjeként is jóváírást kap.

További információ: Microsoft Learn-dokumentáció szerkesztése.