Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
A modern processzorok tokozásonként több maggal rendelkeznek. Általában minden foglalat egyetlen NUMA-csomópontként jelenik meg. Az SQL Server adatbázismotor NUMA-csomópontonként különböző belső struktúrákat és particionálási szolgáltatásszálakat particionál. A szoftvercsatornánként 10 vagy több magot tartalmazó processzorok esetében a szoftveres NUMA használatával a hardveres NUMA-csomópontok felosztása általában növeli a méretezhetőséget és a teljesítményt. Az SQL Server 2014 (12.x) SP2 előtt a szoftveralapú NUMA (soft-NUMA) megkövetelte, hogy szerkessze a beállításjegyzéket egy csomópontkonfigurációs affinitási maszk hozzáadásához, és a gazdagép szintjén volt konfigurálva, nem példányonként. Az SQL Server 2014 (12.x) SP2 és az SQL Server 2016 (13.x) verziótól kezdve a soft-NUMA automatikusan az adatbázis-példány szintjén van konfigurálva az SQL Server Adatbázismotor szolgáltatás indításakor.
A soft-NUMA nem támogatja a közvetlenül hozzáadható processzorokat.
Automatikus soft-NUMA
Az SQL Server 2016 (13.x) esetén, amikor az SQL Server adatbázismotorja NUMA-csomópontonként vagy szoftvercsatornánként több mint nyolc fizikai magot észlel indításkor, a rendszer alapértelmezés szerint automatikusan létrehozza a soft-NUMA csomópontokat. Az egyidejű többszálú (SMT) processzormagok nem különböztethetők meg a csomópont fizikai magjainak számlálásakor. Ha az észlelt fizikai magok száma szoftvercsatornánként nyolcnál több, az SQL Server adatbázismotor olyan soft-NUMA-csomópontokat hoz létre, amelyek ideális esetben nyolc magot tartalmaznak, de csomópontonként négy vagy akár nyolc fizikai magra is lemehetnek. A hardvercsomópont méretét cpu-affinitási maszk korlátozhatja. A NUMA-csomópontok száma soha nem haladja meg a támogatott NUMA-csomópontok maximális számát.
A soft-NUMA letiltható vagy újra engedélyezhető az ALTER SERVER CONFIGURATION utasítással a SET SOFTNUMA argumentummal. A beállítás értékének módosításához az adatbázismotor újraindítása szükséges.
Az alábbi ábra az SQL Server hibanaplójában látható soft-NUMA-val kapcsolatos információkat mutatja be, amikor az SQL Server az egyes csomópontokon vagy szoftvercsatornákon nyolcnál több fizikai maggal rendelkező hardver NUMA-csomópontokat észlel.
2016-11-14 13:39:43.17 Server SQL Server detected 2 sockets with 12 cores per socket and 24 logical processors per socket, 48 total logical processors; using 48 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2016-11-14 13:39:43.35 Server Automatic soft-NUMA was enabled because SQL Server has detected hardware NUMA nodes with greater than 8 physical cores.
2016-11-14 13:39:43.63 Server Node configuration: node 0: CPU mask: 0x0000000000555555:0 Active CPU mask: 0x0000000000555555:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 1: CPU mask: 0x0000000000aaaaaa:0 Active CPU mask: 0x0000000000aaaaaa:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 2: CPU mask: 0x0000555555000000:0 Active CPU mask: 0x0000555555000000:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 3: CPU mask: 0x0000aaaaaa000000:0 Active CPU mask: 0x0000aaaaaa000000:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
Jegyzet
Az SQL Server 2014 (12.x) SP 2-től kezdve használja a 8079 nyomkövetési zászlót, hogy lehetővé tegye az SQL Server számára az automatikus soft-NUMA használatát. Az SQL Server 2016 -tól kezdve (13.x) ezt a viselkedést a motor vezérli, és a 8079 nyomkövetési jelzőnek nincs hatása. További információ: Nyomkövetési jelzők beállítása a DBCC TRACEON használatával.
Kézi soft-NUMA
Ha manuálisan szeretné konfigurálni az SQL Servert a soft-NUMA használatára, tiltsa le az automatikus soft-NUMA-t, és szerkessze a beállításjegyzéket csomópontkonfigurációs affinitási maszk hozzáadásához. Ennek a módszernek a használatakor a soft-NUMA maszk bináris, DWORD (hexadecimális vagy decimális) vagy QWORD (hexadecimális vagy decimális) beállításjegyzék-bejegyzésként is megadható. Ha az első 32 processzornál többet szeretne konfigurálni, használjon QWORD vagy BINÁRIS beállításjegyzék-értékeket (A QWORD-értékek nem használhatók az SQL Server 2012 előtt (11.x)). A beállításjegyzék módosítása után újra kell indítania az adatbázismotort a soft-NUMA konfiguráció érvénybe lépéséhez.
Borravaló
A processzorok számozása a 0-val kezdődik.
Figyelmeztetés
A beállításjegyzék helytelen szerkesztése súlyosan károsíthatja a rendszert. A beállításjegyzék módosítása előtt javasoljuk, hogy készítsen biztonsági másolatot a számítógépen lévő összes értékes adatról.
Vegyük példaként egy nyolc processzorral rendelkező számítógépet, amely nem rendelkezik hardveres NUMA-val. Három soft-NUMA-csomópont van konfigurálva. Az A adatbázismotor-példány 0 és 3 processzor használatára van konfigurálva. Az adatbázismotor egy második példánya van telepítve, és konfigurálva van a 4–7 cpu-k használatára. A példa vizuálisan a következőképpen jeleníthető meg:
CPUs 0 1 2 3 4 5 6 7
Soft-NUMA <-N0-><-N1-><----N2---->
SQL Server <instance A><instance B>
Az A példány, amely jelentős I/O-t tapasztal, most két I/O szálat és egy lusta írószálat tartalmaz. A processzorigényes műveleteket végző B példánynak csak egy I/O szála és egy lusta írószála van. A példányokhoz eltérő mennyiségű memória rendelhető, de a hardveres NUMA-kkal ellentétben mindkettő ugyanabból az operációsrendszer-memóriablokkból kap memóriát, és nincs memória-processzor affinitás.
A lusta író szál a fizikai NUMA memóriacsomópontok SQLOS nézetéhez van kötve. Ezért a hardver által bemutatott fizikai NUMA-csomópontok számával egyezően, ennyi lusta írószálat hoznak létre. További információkért lásd: Hogyan működik: Soft NUMA, I/O Completion Thread, Lazy Writer Workers and Memory Nodes.
Jegyzet
A Soft-NUMA beállításkulcsok nem lesznek másolva az SQL Server egy példányának frissítésekésekor.
A CPU-affinitás maszkjának beállítása
Futtassa az alábbi utasítást az A példányon, hogy a CPU 0, 1, 2 és 3 használatát beállítsa a CPU-affinitás maszkjának beállításával:
ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY CPU = 0 TO 3;
Futtassa a következő utasítást a B példányon a 4., 5., 6. és 7. CPU-k használatára való konfigurálásához a CPU affinitási maszk beállításával:
ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY CPU = 4 TO 7;
Soft-NUMA-csomópontok leképezése processzorokra
A Beállításszerkesztő program (regedit.exe) használatával adja hozzá a következő beállításkulcsokat a soft-NUMA csomópont 0 és 1 processzorra való leképezéséhez, a soft-NUMA csomópont 1-et a 2. és a 3. cpu-hoz, a soft-NUMA csomópont 2-et pedig a 4., 5., 6. és 7. cpu-khoz.
Borravaló
A 60 és 63 processzorok megadásához használjon F000000000000000 QWORD-értéket vagy 1111000000000000000000000000000000000000000000000000000000000000BINÁRIS értéket.
Az alábbi példában tegyük fel, hogy rendelkezik egy DL580 G9-kiszolgálóval, amely szoftvercsatornánként 18 maggal rendelkezik (négy szoftvercsatornában), és mindegyik szoftvercsatorna a saját K-csoportjában található. Egy esetleg létrehozott soft-NUMA-konfiguráció a következő példához hasonlóan nézne ki: csomópontonként hat mag, csoportonként három csomópont, négy csoport.
| Példa több K-csoporttal rendelkező SQL Server-példányra | Típus | Érték neve | Értékadatok |
|---|---|---|---|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node0 |
DWORD | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node0 |
DWORD | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node1 |
DWORD | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node1 |
DWORD | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node2 |
DWORD | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node2 |
DWORD | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node3 |
DWORD | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node3 |
DWORD | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node4 |
DWORD | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node4 |
DWORD | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node5 |
DWORD | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node5 |
DWORD | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node6 |
DWORD | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node6 |
DWORD | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node7 |
DWORD | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node7 |
DWORD | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node8 |
DWORD | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node8 |
DWORD | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node9 |
DWORD | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node9 |
DWORD | Group |
3 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node10 |
DWORD | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node10 |
DWORD | Group |
3 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node11 |
DWORD | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node11 |
DWORD | Group |
3 |
Metaadatok
Az alábbi DMV-k segítségével megtekintheti a soft-NUMA aktuális állapotát és konfigurációját.
sp_configure (Transact-SQL): A SOFTNUMA aktuális értékét (
0vagy1) jeleníti meg.sys.dm_os_sys_info (Transact-SQL): A
softnuma_configurationéssoftnuma_configuration_descoszlopok az aktuális konfigurációs értékeket jelenítik meg.
Bár az automatikus soft-NUMA futóértékét sp_configure használatával tekintheti meg, az értékét nem módosíthatja a használatával sp_configure. Az argumentummal az ALTER SERVER CONFIGURATION utasítást SET SOFTNUMA kell használnia.