affinity Input-Output mask (option de configuration de serveur)

S’applique à :SQL Server

Pour réaliser les travaux multitâches, Microsoft 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 Microsoft 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 au moyen de 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 affinity mask (option de configuration de serveur). 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 de l’option de configuration de serveur affinity64 mask et de l’option de configuration du serveur affinity64 Input-Output mask , respectivement.

Notes

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 à 1 octet prend en charge jusqu’à 8 processeurs sur un ordinateur multiprocesseur.

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

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

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

  • Pour prendre en charge plus de 32 processeurs, configurez un masque affinity I/O mask à 4 octets pour les 32 premiers processeurs et un masque affinity64 I/O mask jusqu’à 4 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 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 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 .

  • 0 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 .

Attention

É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. SQL Server L’affinité de processeur de est configurée de façon optimale à l’aide de l’option sp_configure SQL Server.

Voir aussi

Analyser l'utilisation des ressources (Moniteur système)
RECONFIGURE (Transact-SQL)
Options de configuration du serveur (SQL Server)
sp_configure (Transact-SQL)