Cómo configurar SQL Server para que use NUMA de software
Para configurar SQL Server para que utilice un acceso no uniforme a memoria de software (NUMA de software), debe modificar el Registro para agregar una máscara de afinidad de configuración de nodo. La máscara de NUMA de software se puede establecer como una entrada del Registro binaria o DWORD (hexadecimal o decimal). Debe reiniciar Database Engine (Motor de base de datos) para configurar NUMA de software. Antes de configurar NUMA de software, vea Descripción del acceso no uniforme a memoria y Cómo SQL Server es compatible con NUMA.
Una modificación incorrecta del Registro puede provocar daños graves en el sistema. Antes de efectuar cambios en el Registro, es recomendable que realice una copia de seguridad de los datos importantes del equipo.
En este ejemplo, un equipo con ocho CPU no dispone de NUMA de hardware. Se configuran tres nodos de NUMA de software. La instancia A de Database Engine (Motor de base de datos) se configura para que use las CPU 1 a 4. Una segunda instancia de Database Engine (Motor de base de datos) se instala y configura para que use las CPU 5 a 8. El ejemplo se puede representar visualmente como:
CPUs 1 2 3 4 5 6 7 8
Soft-NUMA <-N0--><-N1-><----N2---->
SQL Server <instance A ><instance B>
La instancia A, que experimenta actividades de E/S importantes, tiene ahora dos subprocesos de E/S y dos subprocesos de escritura diferida, mientras que la instancia B, que realiza operaciones que requieren un uso intensivo del procesador, sólo tiene un subproceso de E/S y un subproceso de escritura diferida. Se pueden asignar diferentes cantidades de memoria a las instancias, pero, a diferencia de lo que ocurre con el NUMA de hardware, ambas reciben memoria del mismo bloque de memoria del sistema operativo y no hay afinidad entre la memoria y el procesador.
Establecer la máscara de afinidad de la CPU
Ejecute la siguiente instrucción en la instancia A para configurarla de modo que utilice las CPU 1, 2, 3 y 4 mediante el establecimiento de la máscara de afinidad de la CPU:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'affinity mask', 15; RECONFIGURE; GO
Ejecute la siguiente instrucción en la instancia B para configurarla de modo que utilice las CPU 5, 6, 7 y 8 mediante el establecimiento de la máscara de afinidad de la CPU:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'affinity mask', 240; RECONFIGURE; GO
[!NOTA]
El valor de la máscara de afinidad del ejemplo se aplica a un equipo con un sistema operativo de 32 bits.
Asignar nodos NUMA de software a las CPU
Mediante el programa Editor del Registro (regedit.exe), agregue las dos claves del Registro siguientes para asignar el nodo 0 de NUMA de software a las CPU 1 y 2, el nodo 1 de NUMA de software a las CPU 3 y 4, y el nodo 2 de NUMA de software a las CPU 5, 6, 7 y 8.
SQL Server 2005
Tipo
Nombre del valor
Datos del valor
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
Nombre del valor
Datos del valor
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