INF: Descripción de cómo establecer la opción de afinidad de E/S de SQL Server

Resumen

Este artículo describe qué es la afinidad de E/S y cómo utilizar la opción de afinidad de E/S que está disponible en SQL Server 2000 SP1 o posterior. En una transacción en línea (OLTP) entorno de procesamiento, la opción de afinidad de E/S puede proporcionar una mejora del rendimiento en entornos SQL Server high-end, de nivel de empresa que se ejecutan en equipos con 16 CPU o más. Esta opción admite sólo la E/s de disco de SQL Server y no admite la afinidad de hardware para discos individuales o controladores de disco.

Más información

Service Pack 1 de SQL Server 2000 amplía la funcionalidad de la opción de configuración de máscara de afinidad de SQL Server 2000 al introducir el modificador IO_affinity_mask.

La opción de configuración affinity mask definida en el procedimiento almacenado sp_configure permite especificar que se utilizan para ejecutar subprocesos desde una instancia de SQL Server en un equipo multiprocesador. Puede utilizar la opción de configuración affinity mask para excluir los subprocesos de SQL Server de los procesadores que desee reservar para procesos del sistema operativo. Para obtener más información acerca de la opción máscara de afinidad , consulte los libros en pantalla de SQL Server 2000. De forma similar, IO_affinity_mask permite especificar qué CPU están configuradas para ejecutar subprocesos de SQL Server relacionados con operaciones de E/S.


Cuando se ejecuta una instancia de SQL Server en equipos multiprocesador de grandes, a nivel de empresa con más de 16 CPU, puede lograr beneficios adicionales en el rendimiento mediante el modificador IO_affinity_mask junto con la opción máscara de afinidad . Esto proporciona la capacidad de especificar qué CPU están afinidad de SQL Server para operaciones de disco y CPU servicio del procesamiento restante asociado a SQL Server.


En casi todos los casos, si deja IO_affinity_mask a su valor predeterminado resultados de la configuración en el mejor rendimiento. Algunos sitios pueden experimentar una mejora en el rendimiento estableciendo la opción IO_affinity_mask .

Puede crear un cuello de botella de rendimiento para los requisitos de CPU relacionados no son discos si el número de CPU asignadas al procesamiento de E/S de disco de SQL Server es más que las necesidades del sistema para el procesamiento de E/S de disco. Por el contrario, un cuello de botella de rendimiento de disco IO puede crearse si se habilitan menos CPU a la E/S de disco de SQL Server de procesamiento que las necesidades del sistema para el procesamiento de E/S de disco.

Para activar la opción IO_affinity_mask , debe agregar un parámetro de entrada estático adicional como parámetro de inicio de SQL Server en el Administrador corporativo o en la línea de comandos sqlservr. (Actualmente, esta opción no está disponible para el procedimiento almacenado sp_configure .) Por ejemplo:

-I<IO_affinity_mask>


Una descripción e información acerca de IO_affinity_mask se indica a continuación:

  • Especificar qué CPU de un equipo multiprocesador son aptos para procesar operaciones de E/S de disco de SQL Server.
  • IO_affinity_mask es un número que puede especificarse en forma decimal (lo que no resulta muy conveniente para un gran número de CPU) o hexadecimal si va precedido de '0 x' o '0 X'.
  • La máscara es un mapa de bits en el que el último bit especifica la CPU(0) de orden más bajo, el bit especifica la siguiente CPU(1) de menor orden y así sucesivamente.
  • Un IO_affinity_mask de un byte cubre hasta 8 CPU de un equipo multiprocesador, una máscara de dos bytes cubre hasta 16 CPU, una máscara de tres bytes cubre hasta 24 CPU y una máscara de cuatro bytes cubre hasta 32 CPU.
  • Un bit uno en el modelo especifica que la CPU correspondiente puede realizar operaciones de E/S de disco de SQL Server; un bit cero especifica que no hay operaciones de E/S de disco de SQL Server para programar la CPU correspondiente.
  • Cuando todos los bits están establecidos en 0 o IO_affinity_mask no se especifica, entonces la E/S de disco de SQL Server se programa en cualquiera de las unidades CPU capaces de subprocesos de SQL Server.
  • No se puede cambiar el valor del modificador IO_affinity_mask mientras se está ejecutando SQL Server. Para cambiar el modificador IO_affinity_mask debe cerrar la instancia de SQL Server y, a continuación, reinícielo con un nuevo valor especificado para IO_affinity_mask.
SQL Server 2000 interpreta los bits de IO_affinity_mask igual interpreta los bits de máscara de afinidad .

Si especifica el modificador IO_affinity_mask , Microsoft sugiere utilizarlo junto con la opción de configuración affinity mask . Asegúrese de no habilitar una CPU para el IO_affinity_mask conmutador y affinity_mask opción.

Los bits correspondientes a cada CPU deben estar en uno de los tres estados siguientes:

  • 0 en el modificador IO_affinity_mask y la opción máscara de afinidad .
  • 1 en el modificador IO_affinity_mask y 0 en la opción máscara de afinidad .
  • 0 en el modificador IO_affinity_mask y 1 en la opción máscara de afinidad .
Como ejemplo, considere un equipo de 32 procesadores que está ejecutando SQL Server, que requiere la siguiente configuración:
  • SQL Server utiliza 24 de las 32 CPU disponibles.
  • Asigne 8 CPU a la E/S de disco de SQL Server y 16 CPU al resto del procesamiento de SQL Server.
Para lograr esta configuración, siga estos pasos:



  1. Establecer la opción affinity mask para asociar SQL Server con 16 CPU para el procesamiento de SQL Server distinto de la E/S de disco:
      sp_configure "affinity mask", 0x0000FFFF  go
    reconfigure with override
    go

  2. Apagado de SQL Server.
  3. Inicie SQL Server con el modificador siguiente. Esto configura SQL Server para que utilice 8 CPU para la E/S de disco:
      sqlservr -I0x00FF0000
SQL Server requiere sistemas para admitir 'entrega garantizada a medios estables' tal como se describe en el programa de revisión de solución de almacenamiento de información de Microsoft SQL Server Maletín le. Fopara obtener más información acerca de los requisitos de entrada y salidos para el motor de base de datos de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Requisitos de entrada y salida de motor de base de datos de 967576 de Microsoft SQL Server

Propiedades

Id. de artículo: 298402 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios