Procedura: Configurazione di SQL Server per l'utilizzo di Soft-NUMA
Viene rilevato e utilizzato automaticamente l'accesso NUMA (Non-uniform memory access, accesso non uniforme alla memoria). Se si desidera simulare l'accesso NUMA di computer SMB di grandi dimensioni o se si desidera suddividere i computer NUMA per una migliore prossimità, è possibile utilizzare Soft-NUMA. Per configurare SQL Server per l'utilizzo di Soft-NUMA, è necessario modificare il Registro di sistema per aggiungere una maschera di affinità di configurazione dei nodi. La maschera Soft-NUMA può essere dichiarata come voce del Registro di sistema binaria o DWORD (esadecimale o decimale). Per configurare più di 32 CPU utilizzare i valori del Registro di sistema BINARY. È necessario riavviare il Motore di database per configurare Soft-NUMA. Prima di configurare Soft-NUMA, vedere Informazioni sull'architettura NUMA (Non-Uniform Memory Access) e Modifiche che consentono il supporto NUMA in SQL Server.
![]() |
---|
Le CPU vengono numerate a partire da 0. |
Se il Registro di sistema viene modificato in modo non appropriato, il sistema potrebbe venire gravemente danneggiato. Prima di modificare il Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti disponibili nel computer.
Si consideri l'esempio seguente. Un computer con otto CPU non dispone di NUMA hardware. Vengono configurati tre nodi soft-NUMA. L'istanza A del Motore di database viene configurata in modo da utilizzare le CPU da 0 a 3. Una seconda istanza del Motore di database viene installata e configurata in modo da utilizzare le CPU da 4 a 7. Questo esempio può essere rappresentato visivamente come segue:
CPUs 0 1 2 3 4 5 6 7
Soft-NUMA <-N0--><-N1-><----N2---->
SQL Server <instance A ><instance B>
L'istanza A che presenta un I/O significativo, ha ora due thread di I/O e due thread Lazywriter mentre l'istanza B che esegue operazioni con utilizzo elevato del processore ha solo un thread di I/O e un thread Lazywriter. È possibile assegnare alle istanze quantità di memoria diverse ma, a differenza di quanto avviene in NUMA hardware, entrambe le istanze ricevono memoria dallo stesso blocco di memoria del sistema operativo e non è presente affinità tra memoria e processore.
Nota
Le chiavi del Registro di sistema di Soft-NUMA non vengono copiate quando si aggiorna un'istanza di SQL Server.
Impostazione della maschera di affinità della CPU
Eseguire l'istruzione seguente sull'istanza A per configurarla per l'utilizzo delle CPU 0, 1, 2 e 3 impostando la maschera di affinità della CPU:
ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=0 TO 3;
Eseguire l'istruzione seguente sull'istanza B per configurarla per l'utilizzo delle CPU 4, 5, 6 e 7 impostando la maschera di affinità della CPU:
ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=4 TO 7;
Mapping dei nodi Soft-NUMA alle CPU
Utilizzando l'Editor del Registro di sistema (regedit.exe), aggiungere le chiavi del Registro di sistema seguenti per eseguire il mapping del nodo Soft-NUMA 0 alle CPU 0 e 1, del nodo Soft-NUMA 1 alle CPU 2 e 3 e del nodo Soft-NUMA 2 alle CPU 4, 5, 6 e 7.
SQL Server 2005
Tipo
Nome del valore
Dati del valore
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0
DWORD
CPUMask
0x03
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node1
DWORD
CPUMask
0x0c
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node2
DWORD
CPUMask
0xf0
SQL Server 2008
Tipo
Nome del valore
Dati del valore
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0
DWORD
CPUMask
0x03
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1
DWORD
CPUMask
0x0c
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2
DWORD
CPUMask
0xf0
SQL Server 2008 R2
Tipo
Nome del valore
Dati del valore
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0
DWORD
CPUMask
0x03
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0
DWORD
Gruppo
0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1
DWORD
CPUMask
0x0c
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1
DWORD
Gruppo
0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2
DWORD
CPUMask
0xf0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2
DWORD
Gruppo
0
Suggerimento
Per specificare le CPU da 60 a 63, utilizzare il valore BINARY 1111000000000000000000000000000000000000000000000000000000000000.
Vedere anche