Configuración del servidor: affinity I/O mask
Se aplica a: SQL Server
Para realizar varias tareas, Windows a veces mueve subprocesos del proceso entre diferentes procesadores. Aunque es eficaz desde el punto de vista del sistema operativo, esta actividad puede reducir el rendimiento de SQL Server en casos de elevadas cargas, ya que cada caché de procesador se vuelve a cargar repetidamente con los datos. La asignación de procesadores a subprocesos específicos puede mejorar el rendimiento en estas condiciones, ya que se eliminan las recargas de procesador; esta asociación entre un subproceso y un procesador se denomina afinidad del procesador.
SQL Server admite la afinidad del procesador por medio de dos opciones de máscara de afinidad: affinity mask
(también conocida como CPU affinity mask) y affinity I/O mask
. Para obtener más información sobre la opción affinity mask
, vea Configuración de la opción de configuración del servidor de máscara de afinidad. La compatibilidad de afinidad de CPU y E/S con servidores con entre 33 y 64 procesadores exige el uso adicional de las opciones de configuración del servidor affinity64 mask y affinity64 I/O mask, respectivamente.
Nota:
La compatibilidad de la afinidad con servidores que tienen entre 33 y 64 procesadores solo está disponible en sistemas operativos de 64 bits.
La opción affinity I/O mask
enlaza las E/S de disco de SQL Server a un subconjunto especificado de CPU. En entornos de procesamiento de transacciones en línea (OLTP) de SQL Server de grandes prestaciones, esta extensión puede mejorar el rendimiento de los subprocesos de SQL Server que emiten E/S. Esta mejora no admite la afinidad de hardware para controladores de discos o discos individuales.
El valor de affinity I/O mask
especifica las CPU de un equipo con varios procesadores que se pueden seleccionar para procesar operaciones de E/S del disco de SQL Server. La máscara es un mapa de bits en el que el primer bit de la derecha especifica la CPU(0) de menor orden, el bit inmediatamente a su izquierda especifica la CPU(1) siguiente a la de menor orden, y así sucesivamente. Para configurar más de 32 procesadores, establezca tanto affinity I/O mask
como affinity64 I/O mask
.
Estos son los valores para affinity I/O mask
:
Bytes en máscara | Número de CPU |
---|---|
1 byte | Hasta 8 CPU |
2 bytes | Hasta 16 CPU |
3 bytes | Hasta 24 CPU |
4 bytes | Hasta 32 CPU |
Para cubrir más de 32 CPU, configure una affinity I/O mask
de 4 bytes para las primeras 32 CPU y una affinity64 I/O mask
de hasta 4 bytes para las restantes CPU.
Un bit 1
en el patrón de E/S de afinidad especifica que la CPU correspondiente es apta para realizar operaciones de E/S de disco de SQL Server. Un bit 0
especifica que no se deben programar operaciones de E/S de disco de SQL Server para la CPU correspondiente. Cuando todos los bits se establecen en 0
, o bien no se especifica affinity I/O mask
, las E/S del disco de SQL Server se programan en cualquiera de las CPU que se pueden seleccionar para procesar subprocesos de SQL Server.
Dado que establecer la opción affinity I/O mask
de SQL Server es una operación especializada, solo debería usarse en caso necesario. En la mayor parte de los casos, el mejor rendimiento se obtiene con la afinidad predeterminada de Windows.
Al especificar la opción affinity I/O mask
, se debe usar junto con la opción de configuración affinity mask
. No habilite la misma CPU tanto en el conmutador affinity I/O mask
como en la opción affinity mask
. Los bits correspondientes a cada CPU deberían estar en uno de los tres estados siguientes:
0
en la opciónaffinity I/O mask
y en la opciónaffinity mask
.1
en la opciónaffinity I/O mask
y0
en la opciónaffinity mask
.0
en la opciónaffinity I/O mask
y1
en la opciónaffinity mask
.
La opción affinity I/O mask
es una opción avanzada. Si va a usar el procedimiento almacenado del sistema sp_configure
para cambiar la configuración, solo puede cambiar el valor affinity I/O mask
si show advanced options
está establecido en 1
. En SQL Server, para reconfigurar la opción affinity I/O mask
hay que reiniciar la instancia SQL Server.
Precaución
No configure la afinidad de CPU en el sistema operativo Windows y configure también affinity mask
en SQL Server. Esta configuración intenta lograr el mismo resultado y, si las configuraciones no son coherentes, puede obtener resultados impredecibles. La afinidad de CPU de SQL Server se configura mejor mediante el procedimiento almacenado del sistema sp_configure
en SQL Server.