Partager via


Option affinity I/O mask

Pour exécuter des travaux multitâche, Microsoft Windows 2000 et Windows Server 2003 transfèrent parfois des threads de processus entre différents processeurs. Bien qu'efficace du point de vue système d'exploitation, cette activité peut réduire les performances de MicrosoftSQL Server sous des charges de système intenses, car des données sont rechargées de façon répétée dans chaque cache de processeur. L'affectation de processeurs à des threads spécifiques peut améliorer les performances sous ces conditions en éliminant les rechargements de processeur ; une telle association entre un thread et un processeur est qualifiée d'affinité de processeur.

SQL Server prend en charge l'affinité du processeur au moyen de deux options de masque d'affinité : affinity mask (également qualifiée de masque d'affinité de processeur) et affinity I/O mask. Pour plus d'informations sur l'option affinity mask, consultez Option affinity mask. La prise en charge de l'affinité de processeur et de l'affinité d'E/S pour les serveurs dotés de 33 à 64 processeurs nécessite respectivement l'utilisation supplémentaire de l'Option affinity64 mask et de l'Option affinity64 I/O mask.

[!REMARQUE]

La prise en charge de l'affinité pour les serveurs dotés de 33 à 64 processeurs est uniquement disponible sur les systèmes d'exploitation 64 bits.

L'option affinity I/O mask lie les E/S disque de SQL Server à un sous-ensemble de processeurs spécifié. Dans les environnements de traitement transactionnel en ligne (OLTP) SQL Server haut de gamme, cette extension permet d'améliorer les performances des threads SQL Server émettant des E/S. Cette amélioration ne prend pas en charge l'affinité matérielle pour les disques ou les contrôleurs de disques individuels.

La valeur de affinity I/O mask spécifie quels processeurs dans un ordinateur multiprocesseur sont éligibles pour le traitement d'opérations d'E/S disque SQL Server. Le masque est un bitmap dans lequel le bit le plus à droite spécifie le processeur d'ordre le plus bas CPU(0), le bit à sa gauche immédiate spécifie le processeur d'ordre le plus bas suivant CPU(1), etc. Pour configurer plus de 32 processeurs, définissez les options affinity I/O mask et affinity64 I/O mask.

Les valeurs de l'option affinity I/O mask sont les suivantes :

  • Un masque affinity I/O mask à un octet prend en charge jusqu'à 8 processeurs sur un ordinateur multiprocesseur.

  • Un masque affinity I/O mask à deux octets prend en charge jusqu'à 16 processeurs sur un ordinateur multiprocesseur.

  • Un masque affinity I/O mask à trois octets prend en charge jusqu'à 24 processeurs sur un ordinateur multiprocesseur.

  • Un masque affinity I/O mask à quatre octets prend en charge jusqu'à 32 processeurs sur un ordinateur multiprocesseur.

  • Pour prendre en charge plus de 32 processeurs, configurez un masque d'affinité d'E/S à quatre octets pour les 32 premiers processeurs et un masque d'affinité64 d'E/S jusqu'à quatre octets pour les autres processeurs.

Un bit à 1 dans le modèle d'affinité d'E/S spécifie que le processeur correspondant peut effectuer des opérations d'E/S de disque SQL Server ; un bit à 0 spécifie qu'aucune opération d'E/S de disque SQL Server ne doit être planifiée pour le processeur correspondant. Lorsque tous les bits sont à zéro ou lorsque l'option affinity I/O mask n'est pas spécifiée, l'E/S disque de SQL Server est confiée à n'importe lequel des processeurs éligibles au traitement de threads SQL Server.

Le paramétrage de l'option SQL Serveraffinity I/O mask étant une opération spécialisée, elle ne doit être utilisée qu'exceptionnellement. Dans la plupart des cas, l'option d'affinité par défaut de Windows 2000 ou de Windows Server 2003 offre des performances optimales.

Lorsque vous spécifiez l'option affinity I/O mask, vous devez l'utiliser avec l'option de configuration affinity mask. Évitez d'activer sur le même processeur le commutateur affinity I/O mask et l'option affinity mask. Les bits correspondant à chaque processeur doivent être dans l'un des trois états suivants :

  • 0 pour l'option affinity I/O mask et pour l'option affinity mask.

  • 1 pour l'option affinity I/O mask et 0 pour l'option affinity mask.

  • 1 pour l'option affinity I/O mask et 1 pour l'option affinity mask.

L'option affinity I/O mask est une option avancée. Si vous utilisez la procédure stockée système sp_configure pour changer sa valeur, vous ne pouvez modifier l'option affinity I/O mask que si la valeur 1 a été attribuée à l'option show advanced options. Dans SQL Server, reconfigurer l'option affinity I/O mask requiert un redémarrage de l'instance SQL Server.

AttentionAttention

Évitez de configurer l'affinité de processeur dans le système d'exploitation Windows et le masque d'affinité dans SQL Server. Ces paramètres tentent d'obtenir le même résultat et, si les configurations sont incohérentes, les résultats risquent d'être imprévisibles. L'affinité de processeur de SQL Server est configurée de façon optimale à l'aide de l'option sp_configure dans SQL Server.