Procédure : configurer SQL Serveur pour utiliser soft-NUMA

Pour configurer SQL Server afin de pouvoir utiliser soft-NUMA (Software Non-Uniform Memory Access), vous devez modifier le Registre et ajouter un masque d'affinité de configuration des nœuds. Le masque soft-NUMA peut être établi comme entrée de Registre binaire ou DWORD (hexadécimal ou décimal). Vous devez redémarrer le moteur de base de données pour configurer soft-NUMA. Avant de configurer soft-NUMA, consultez Présentation de l'accès NUMA (Non-uniform Memory Access) et Prise en charge de la technologie NUMA dans SQL Server.

Une modification incorrecte du Registre peut sérieusement endommager votre système. Avant d'apporter des modifications au Registre, nous vous recommandons de sauvegarder les données importantes qui se trouvent sur l'ordinateur.

Dans cet exemple, un ordinateur avec huit UC ne possède pas d'accès NUMA matériel. Trois nœuds soft-NUMA sont configurés. L'instance A du moteur de base de données est configurée pour utiliser les UC de 1 à 4. Une deuxième instance du moteur de base de données est installée et configurée pour utiliser les UC de 5 à 8. L'exemple peut être représenté visuellement de la façon suivante :

CPUs          1  2  3  4  5  6  7  8

Soft-NUMA   <-N0--><-N1-><----N2---->

SQL Server  <instance A ><instance B>

L'instance A, confrontée à des E/S importantes, possède maintenant deux threads d'E/S et deux threads d'écriture différée, tandis que l'instance B, qui exécute des opérations nécessitant des ressources UC conséquentes, ne possède qu'un seul thread d'E/S et un seul thread d'écriture différée. Il est possible d'affecter des quantités de mémoire différentes aux instances, mais contrairement à l'accès NUMA matériel, elles reçoivent toutes deux la mémoire du même bloc mémoire du système d'exploitation et il n'existe pas d'affinité entre la mémoire et le processeur.

Définir le masque d'affinité de l'UC

  1. Exécutez l'instruction suivante sur l'instance A de façon à la configurer pour qu'elle utilise les UC 1, 2, 3 et 4 en définissant le masque d'affinité de l'UC :

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 15;
    RECONFIGURE;
    GO
    
  2. Exécutez l'instruction suivante sur l'instance B de façon à la configurer pour qu'elle utilise les UC 5, 6, 7 et 8 en définissant le masque d'affinité de l'UC :

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 240;
    RECONFIGURE;
    GO
    

[!REMARQUE]

Dans cet exemple, la valeur du masque d'affinité s'applique à un ordinateur équipé d'un système d'exploitation 32 bits.

Mapper les nœuds soft-NUMA aux UC

  • À l'aide de l'Éditeur du Registre (regedit.exe), ajoutez les clés de Registre suivantes pour mapper le nœud soft-NUMA 0 aux UC 1 et 2, le nœud soft-NUMA 1 aux UC 3 et 4, et le nœud soft-NUMA 2 aux UC 5, 6, 7 et 8.

    SQL Server 2005

    Type

    Nom de valeur

    Données de valeur

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0

    SQL Server 2008

    Type

    Nom de valeur

    Données de la valeur

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0