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

Seleccione idioma Seleccione idioma
Id. de artículo: 298402 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E298402
Expandir todo | Contraer todo

Resumen

En este artículo se explica qué es la afinidad de E/S y cómo utilizar la opción Afinidad de E/S que está disponible en SQL Server 2000 Service Pack 1 o posterior. En un entorno de procesamiento de transacciones en línea (OLTP, Online Transaction Processing), la opción Afinidad de E/S puede proporcionar una mejora del rendimiento en entornos SQL Server empresariales de tecnología avanzada que se ejecuten en equipos con 16 CPU o más. Esta opción sólo admite entradas y salidas de disco de SQL Server y no admite la afinidad de hardware para discos o controladores de disco individuales.

Más información

El Service Pack 1 de SQL Server 2000 amplía la funcionalidad de la opción de configuración affinity mask 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 qué unidades CPU de un equipo multiprocesador se utilizarán para ejecutar subprocesos desde una instancia de SQL Server. 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 affinity mask, consulte los Libros en pantalla de SQL Server 2000. De igual modo, IO_affinity_mask permite especificar qué CPU están configuradas para ejecutar subprocesos de SQL Server relacionados con operaciones de E/S.

Al ejecutar una instancia de SQL Server en grandes equipos empresariales multiprocesador con más de 16 CPU, puede lograr beneficios adicionales en el rendimiento si utiliza el modificador IO_affinity_mask junto con la opción affinity mask. De este modo, se proporciona la capacidad de especificar qué CPU tienen afinidad con las operaciones de disco de SQL Server y cuáles se encargan del procesamiento restante asociado a SQL Server.

En casi todos los casos, si se deja IO_affinity_mask en su valor predeterminado, se obtiene el mejor rendimiento. Algunos sitios pueden experimentar una mejora en el rendimiento si se establece la opción IO_affinity_mask.

Si el número de CPU asignadas al procesamiento de E/S de disco de SQL Server es superior a las necesidades del sistema para dicho procesamiento, se puede crear un cuello de botella en el rendimiento de los requisitos de CPU no relacionados con operaciones de disco. A la inversa, si se habilitan menos CPU para el procesamiento de E/S del disco de SQL Server que las que necesita el sistema, se puede crear un cuello de botella en el rendimiento de la E/S de disco.

Para activar la opción IO_affinity_mask, deberá 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>

A continuación se muestra una descripción e información acerca de IO_affinity_mask:

  • Especifique qué CPU de un equipo multiprocesador pueden ser elegidas para procesar operaciones de E/S de disco en 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 '0x' o '0X'.
  • La máscara es un mapa de bits en el que el último bit especifica la CPU de orden inferior (0), el penúltimo bit especifica la siguiente CPU de orden inferior (1) y así sucesivamente.
  • Una máscara 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 de tres bytes, hasta 24 CPU y una de cuatro bytes hasta 32 CPU.
  • Un bit uno en el modelo indica que la CPU correspondiente puede realizar operaciones de E/S de disco en SQL Server; un bit cero indica que no se programará ninguna operación de E/S de disco en SQL Server para la CPU correspondiente.
  • Cuando todos los bits están establecidos en 0 o no se especifica IO_affinity_mask, la E/S de disco en SQL Server se programa en cualquiera de las unidades CPU capaces de ejecutar los subprocesos de SQL Server.
  • El valor del modificador IO_affinity_mask no se puede cambiar mientras SQL Server está en ejecución. Para cambiar el modificador IO_affinity_mask, es necesario cerrar la instancia de SQL Server y, a continuación, reiniciarla una vez especificado el nuevo valor para IO_affinity_mask.
SQL Server 2000 interpreta los bits de IO_affinity_mask igual que los bits de la opción affinity mask.

Si se 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 modificador IO_affinity_mask y la opción affinity_mask.

Los bits que corresponden a cada CPU deben estar en uno de los tres estados siguientes:
  • 0 en el modificador IO_affinity_mask y en la opción affinity mask.
  • 1 en el modificador IO_affinity_mask y 0 en la opción affinity mask.
  • 0 en el modificador IO_affinity_mask y 1 en la opción affinity mask.
Como ejemplo, considere un equipo de 32 procesadores con SQL Server que requiere la configuración siguiente:
  • 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. Establezca la opción affinity mask de forma que SQL Server se asocie con 16 CPU para el procesamiento de SQL Server distinto de las operaciones de E/S de disco:
     sp_configure "affinity mask", 0x0000FFFF
     go
     reconfigure with override
     go
  2. Apague SQL Server.
  3. Inicie SQL Server con el modificador siguiente. De este modo, se configura SQL Server de forma que utilice 8 CPU para la E/S de disco:
     sqlservr -I0x00FF0000

Propiedades

Id. de artículo: 298402 - Última revisión: viernes, 26 de octubre de 2007 - Versión: 1.2
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Service Pack 1
Palabras clave: 
kbinfo kbsqlserv2000sp1fix tslic_tslic kbproductlink KB298402

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com