Partage via


Server configuration: affinity I/O mask

S’applique à : SQL Server

Pour réaliser les travaux multitâches, Windows déplace parfois les threads de processus entre les différents processeurs. Bien qu’efficace du point de vue du système d’exploitation, cette activité peut réduire les performances de SQL 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 avec deux options de masque d’affinité : affinity mask (également appelé CPU affinity mask) et affinity I/O mask. Pour plus d’informations sur l’option affinity mask, consultez Configurer l’option de configuration du serveur affinity mask. La prise en charge de l’affinité du processeur et d’E/S pour les serveurs dotés de 33 à 64 processeurs nécessite l’utilisation supplémentaire des options option de configuration du serveur affinity64 mask et affinity64 I/O mask, respectivement.

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 à la fois affinity I/O mask et affinity64 I/O mask.

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

Octets dans le masque Nombre d'unités centrales
1 octet Jusqu’à 8 processeurs
2 octets Jusqu’à 16 processeurs
3 octets Jusqu’à 24 processeurs
4 octets Jusqu’à 32 processeurs

Si vous disposez de plus de 32 processeurs, configurez un affinity I/O mask à 4 octets pour les 32 premiers processeurs et un affinity64 I/O mask à 4 octets pour les processeurs restants.

Un bit 1 dans le modèle d’affinité d’E/S spécifie que le processeur correspondant est éligible pour 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 définis sur 0 ou que affinity I/O mask n’est pas spécifié, 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 Server affinity 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 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. N’activez pas 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 à la fois dans l’option affinity I/O mask et l’option affinity mask.
  • 1 dans l’option affinity I/O mask et 0 dans l’option affinity mask.
  • 0 dans l’option affinity I/O mask et 1 dans 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 l’option show advanced options est définie sur 1. Dans SQL Server, reconfigurer l’option affinity I/O mask requiert un redémarrage de l’instance SQL Server .

Attention

Évitez de configurer l'affinité de processeur dans le système d'exploitation Windows et affinity mask 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é processeur de SQL Server est mieux configurée à l’aide de la procédure stockée système sp_configure dans SQL Server.