INF : Comprendre comment définir l'option Affinité d'E/S de SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 298402 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F298402
Agrandir tout | Réduire tout

Résumé

Cet article décrit l'option Affinité E/S et son utilisation dans SQL Server 2000 SP1, ou version ultérieure. Dans un environnement de traitement des transactions en ligne (OLTP), l'option Affinité E/S peut améliorer les performances dans des environnements SQL Server de pointe et d'entreprise impliquant des ordinateurs dotés de 16 processeurs ou plus. Cette option ne prend en charge que les E/S disque SQL Server et ne prend pas en charge les affinités matérielles pour des disques individuels ou des contrôleurs de disque.

Plus d'informations

SQL Server 2000 Service Pack 1 étend la fonctionnalité de l'option de configuration Masque d'affinité de SQL Server 2000 en introduisant le paramètre IO_affinity_mask.

L'option de configuration Masque d'affinité définie dans la procédure stockée sp_configure vous permet de spécifier, sur un ordinateur multiprocesseur, les processeurs à utiliser pour exécuter les threads à partir d'une instance de SQL Server. Vous pouvez utiliser l'option de configuration Masque d'affinité pour exclure les threads SQL Server des processeurs que vous souhaitez réserver pour les processus du système d'exploitation. Pour plus d'informations sur l'option Masque d'affinité, reportez-vous à la documentation en ligne de SQL Server 2000. De manière similaire, le paramètre IO_affinity_mask vous permet de spécifier les processeurs configurés pour exécuter les threads SQL Server relatives aux opérations d'E/S.

Lorsque vous exécutez une instance de SQL Server sur des ordinateurs multiprocesseur d'entreprise puissants dotés de plus de 16 processeurs, vous pouvez obtenir de meilleures performances en utilisant le paramètre IO_affinity_mask conjointement à l'option Masque d'affinité. Celui-ci vous permet en effet de spécifier les processeurs configurés avec des affinités pour exécuter les opérations disque SQL Server et ceux qui traitent le reste des opérations associées à SQL Server.

Dans la plupart des cas, conserver le paramètre par défaut de IO_affinity_mask permet d'obtenir les meilleures performances. Pour certains sites, il peut s'avérer utile de le modifier pour augmenter les performances.

Vous pouvez créer un goulet d'étranglement pour les opérations non liées au disque si le nombre de processeurs attribués au traitement des E/S disque avec SQL Server est supérieur au nombre de processeurs dont le système a besoin pour le traitement des E/S disque. Inversement, vous pouvez créer un goulet d'étranglement pour le traitement des E/S disque si vous allouez moins de processeurs au traitement des E/S disque avec SQL Server que ce dont le système a besoin pour le traitement des E/S disque.

Pour activer l'option IO_affinity_mask , vous devez ajouter un paramètre d'entrée statique en tant que paramètre de démarrage SQL Server dans Enterprise Manager ou à la ligne de commande sqlservr. (Cette option n'est actuellement pas disponible pour la procédure stockée sp_configure.) Par exemple :

-I<IO_affinity_mask>

Vous trouvez une description et des informations sur IO_affinity_mask ci-après.

  • Spécifiez les processeurs d'un ordinateur multiprocesseur autorisés à traiter les opérations d'E/S disque avec SQL Server.
  • IO_affinity_mask est un nombre qui peut être spécifié au format décimal (ce qui n'est pas forcément pratique pour spécifier un grand nombre de processeurs) ou hexadécimal (s'il est précédé de "0x" ou "0X").
  • Le masque est une table binaire dans laquelle le bit de droite spécifie le processeur de poids le plus faible (0), le bit à gauche de celui-ci le processeur suivant dans l'échelle d'importance (1), et ainsi de suite.
  • Un masque IO_affinity_mask comptant un octet couvre jusqu'à 8 processeurs d'un ordinateur multiprocesseur, un masque de deux octets jusqu'à 16 processeurs, un masque de trois octets jusqu'à 24 processeurs et un masque de quatre octets jusqu'à 32 processeurs.
  • Un bit 1 dans le modèle spécifie que le processeur correspondant est autorisé à effectuer des opérations d'E/S disque SQL Server ; un bit 0 spécifie qu'aucune opération d'E/S disque avec SQL Server ne peut être planifiée pour le processeur correspondant.
  • Si tous les bits sont définis sur zéro ou que le paramètre IO_affinity_mask n'est pas défini, les opérations d'E/S de disque SQL Server peuvent s'effectuer sur l'un des processeurs autorisés à traiter des threads SQL Server.
  • La valeur du paramètre IO_affinity_mask ne peut pas être modifiée si SQL Server est en cours d'exécution. Pour modifier le paramètre IO_affinity_mask, vous devez arrêter l'instance de SQL Server en cours d'exécution, puis la redémarrer après avoir spécifié une nouvelle valeur pour IO_affinity_mask.
SQL Server 2000 interprète les bits du paramètre IO_affinity_mask de la même manière que ceux du Masque d'affinité.

Si vous spécifiez le paramètre IO_affinity_mask, Microsoft vous recommande de l'utiliser conjointement avec l'option de configuration Masque d'affinité. Assurez-vous de ne pas activer un processeur dans le paramètre IO_affinity_mask et dans l'option affinity_mask.

Les bits correspondant à chaque processeur doivent se trouver dans l'un des états suivants :
  • 0 dans le paramètre IO_affinity_mask et l'option Masque d'affinité.
  • 1 dans le paramètre IO_affinity_mask et 0 dans l'option Masque d'affinité.
  • 0 dans le paramètre IO_affinity_mask et 1 dans l'option Masque d'affinité.
Prenons l'exemple d'un ordinateur doté de 32 processeurs exécutant SQL Server avec la configuration requise suivante :
  • SQL Server utilise 24 des 32 processeurs disponibles.
  • 8 processeurs assignés à l'E/S disque SQL Server et 16 au reste des opérations de traitement SQL Server.
Pour appliquer cette configuration, procédez comme suit :
  1. Définissez l'option Masque d'affinité pour associer SQL Server aux 16 processeurs pour le traitement SQL Server autre que les E/S disque :
      sp_configure "affinity mask", 0x0000FFFF
      go
      reconfigure with override
      go
  2. Arrêtez SQL Server.
  3. Démarrez SQL Server avec le paramètre suivant. SQL Server est alors configuré pour utiliser 8 processeurs pour l'E/S disque.
      sqlservr -I0x00FF0000

Propriétés

Numéro d'article: 298402 - Dernière mise à jour: vendredi 26 octobre 2007 - Version: 1.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Service Pack 1
Mots-clés : 
kbinfo kbsqlserv2000sp1fix tslic_tslic kbproductlink KB298402
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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