Partager via


affinity Input-Output mask Option de Configuration du Serveur

Pour effectuer le multitâche, Microsoft Windows 2000 et Windows Server 2003 déplacent parfois des threads de processus entre 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 de lourdes charges système, car chaque cache de processeur est rechargé à plusieurs reprises avec des données. 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 à l’aide de deux options de masque d’affinité : le masque d’affinité (également appelé masque d’affinité processeur) et le masque d’affinité E/S. Pour plus d’informations sur l’option de masque d’affinité , consultez l’option de configuration du serveur de masque d’affinité. La prise en charge de l’affinité de processeur et d’E/S pour les serveurs avec 33 à 64 processeurs nécessite l’utilisation supplémentaire de l’option de configuration du serveur affinity64 mask et de l’option de configuration du serveur affinity64 Input-Output 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 de masque d’affinité E/S lie les E/S de disque de SQL Server à un sous-ensemble spécifié de processeurs. 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 individuels ou les contrôleurs de disque.

La valeur du masque d'affinité E/S spécifie quels processeurs d’un ordinateur multiprocesseur sont éligibles pour traiter les opérations d’E/S de disque de 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 le masque d’E/S d’affinité et le masque d’E/S affinity64.

Les valeurs du masque d’E/S d’affinité sont les suivantes :

  • Un masque d’E/S d’affinité de 1 octet couvre jusqu’à 8 PROCESSEURs dans un ordinateur multiprocesseur.

  • Un masque d’E/S d’affinité de 2 octets couvre jusqu’à 16 PROCESSEURs dans un ordinateur multiprocesseur.

  • Un masque d’E/S d’affinité de 3 octets couvre jusqu’à 24 PROCESSEURs dans un ordinateur multiprocesseur.

  • Un masque d’E/S d’affinité de 4 octets couvre jusqu’à 32 PROCESSEURs dans un ordinateur multiprocesseur.

  • Pour couvrir plus de 32 processeurs, configurez un masque d’E/S d’affinité de quatre octets pour les 32 premiers processeurs et jusqu’à un masque d’E/S d’affinité64 de quatre octets pour les processeurs restants.

Un modèle d’E/S d’affinité 1 bits spécifie que l’UC correspondante 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 l’UC correspondante. Lorsque tous les bits sont définis sur zéro ou que le masque d’E/S d’affinité n’est pas spécifié, les E/S de disque SQL Server sont planifiées sur l’un des processeurs éligibles pour traiter les threads SQL Server.

Étant donné que la définition de l’option de masque d'affinité d’E/S SQL Server est une opération spécialisée, il convient de l'utiliser uniquement en cas de nécessité. Dans la plupart des cas, l’affinité par défaut windows 2000 ou Windows Server 2003 offre les meilleures performances.

Lorsque vous spécifiez l’option de masque d’E/S d’affinité , vous devez l’utiliser avec l’option de configuration du masque d’affinité . N’activez pas le même processeur dans le commutateur de masque d’E/S d’affinité et l’option de masque d’affinité . Les bits correspondant à chaque processeur doivent être dans l'un des trois états suivants :

  • 0 dans l’option masque d’affinité E/S et l’option masque d’affinité.

  • 1 dans l’option masque d’E/S d’affinité et 0 dans l’option de masque d’affinité .

  • 0 dans l’option masque d’affinité E/S et 1 dans l’option masque d’affinité.

L’option de masque d’E/S d’affinité est une option avancée. Si vous utilisez la sp_configure procédure stockée système pour modifier ce paramètre, vous pouvez modifier le masque d'affinité E/S uniquement lorsque afficher les options avancées est défini sur 1. Dans SQL Server, la reconfiguration de l’option de masque d’E/S d’affinité nécessite un redémarrage de l’instance SQL Server.

Avertissement

Ne configurez pas l’affinité processeur dans le système d’exploitation Windows et configurez également 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. Il est préférable de configurer l’affinité de processeur SQL Server à l’aide de l’option sp_configure dans 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)