affinity I/O mask (opción)

Para llevar a cabo una multitarea, Microsoft Windows 2000 y Windows Server 2003 a veces mueven subprocesos entre distintos procesadores. Aunque es eficaz desde el punto de vista del sistema operativo, esta actividad puede reducir el rendimiento de Microsoft SQL Server en casos de elevadas cargas de trabajo, ya que cada caché de procesador se recarga 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 acerca de la opción affinity mask, vea affinity mask (opción). La compatibilidad de la afinidad de CPU y de E/S con servidores que tienen entre 33 y 64 procesadores requiere el uso adicional de affinity64 mask (opción) y affinity64 I/O mask (opción) respectivamente.

Nota

La compatibilidad de la afinidad con servidores que tienen entre 33 y 64 procesadores sólo está disponible en sistemas operativos de 64 bits.

La opción affinity I/O mask (máscara de afinidad de E/S) enlaza la E/S del disco de SQL Server a un subconjunto específico 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 affinity I/O mask y affinity64 I/O mask.

Los valores de affinity I/O mask son los siguientes:

  • Una máscara affinity I/O mask de 1 byte cubre hasta 8 CPU en un equipo con varios procesadores.

  • Una máscara affinity I/O mask de 2 bytes cubre hasta 16 CPU en un equipo con varios procesadores.

  • Una máscara affinity I/O mask de 3 bytes cubre hasta 24 CPU en un equipo con varios procesadores.

  • Una máscara affinity I/O mask de 4 bytes cubre hasta 32 CPU en un equipo con varios procesadores.

  • Para cubrir más de 32 CPU, configure una máscara affinity I/O mask de cuatro bytes para las 32 primeras CPU y una máscara affinity64 I/O mask de hasta 4 bytes para las CPU restantes.

El valor 1 bit en el patrón de afinidad de E/S especifica que la CPU correspondiente se puede seleccionar para realizar operaciones de E/S del disco de SQL Server; El valor 0 bit especifica que no se debería programar ninguna operación de E/S del disco de SQL Server para la CPU correspondiente. Cuando todos los bits se establecen como cero, o bien no se especifica affinity I/O mask, la E/S del disco de SQL Server se programa 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, sólo debería utilizarse en caso necesario. En la mayoría de los casos, la afinidad predeterminada de Windows 2000 o Windows Server 2003 proporciona el mejor rendimiento.

Al especificar la opción affinity I/O mask, debe utilizarla junto con la opción de configuración affinity mask. No habilite la misma CPU en el modificador affinity I/O mask y la opción affinity mask. Los bits correspondientes a cada CPU deberían estar en uno de los tres estados siguientes:

  • 0 tanto en la opción affinity I/O mask como en la opción affinity mask.

  • 1 en la opción affinity I/O mask y 0 en la opción affinity mask.

  • 0 en la opción affinity I/O mask y 1 en la opción affinity mask.

La opción affinity I/O mask es una opción avanzada. Si está utilizando el procedimiento almacenado del sistema sp_configure para cambiar la configuración, sólo podrá cambiar el valor de affinity I/O mask si show advanced options está establecido en 1. En SQL Server, el reconfigurar la opción affinity I/O mask se requiere un reinicio de la instancia SQL Server.

Nota de advertenciaAdvertencia

No configure la afinidad de CPU en el sistema operativo Windows y la máscara de afinidad 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 la opción sp_configure de SQL Server.