Procedura: Configurazione di SQL Server per l'utilizzo di Soft-NUMA

Per configurare SQL Server per l'utilizzo di Soft-NUMA (Software Non-Uniform Memory Access), è necessario modificare il Registro di sistema per aggiungere una maschera di affinità di configurazione dei nodi. La maschera Soft-NUMA può essere dichiarata come voce del Registro di sistema binaria o DWORD (esadecimale o decimale). È necessario riavviare Motore di database per configurare Soft-NUMA. Prima di configurare Soft-NUMA, vedere Informazioni sull'architettura NUMA (Non-Uniform Memory Access) e Modifiche che consentono il supporto NUMA in SQL Server.

Se il Registro di sistema viene modificato in modo non appropriato, il sistema potrebbe venire gravemente danneggiato. Prima di modificare il Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti disponibili nel computer.

In questo esempio, un computer con otto CPU non dispone di NUMA hardware. Vengono configurati tre nodi soft-NUMA. L'istanza A del Motore di database viene configurata in modo da utilizzare le CPU da 1 a 4. Una seconda istanza del Motore di database viene installata e configurata in modo da utilizzare le CPU da 5 a 8. Questo esempio può essere rappresentato visivamente come segue:

CPUs          1  2  3  4  5  6  7  8

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

SQL Server  <instance A ><instance B>

L'istanza A che presenta un I/O significativo, ha ora due thread di I/O e due thread Lazywriter mentre l'istanza B che esegue operazioni con utilizzo elevato del processore ha solo un thread di I/O e un thread Lazywriter. È possibile assegnare alle istanze diverse quantità di memoria ma, a differenza di quanto avviene in NUMA hardware, entrambe le istanze ricevono memoria dallo stesso blocco di memoria del sistema operativo e non è presente affinità tra memoria e processore.

Impostazione della maschera di affinità della CPU

  1. Eseguire l'istruzione seguente sull'istanza A per configurarla per l'utilizzo delle CPU 1, 2, 3 e 4 impostando la maschera di affinità della CPU:

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 15;
    RECONFIGURE;
    GO
    
  2. Eseguire l'istruzione seguente sull'istanza B per configurarla per l'utilizzo delle CPU 5, 6, 7 e 8 impostando la maschera di affinità della CPU:

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

[!NOTA]

Il valore della maschera di affinità riportato nell'esempio si applica a un computer con un sistema operativo a 32 bit.

Mapping dei nodi Soft-NUMA alle CPU

  • Utilizzando l'Editor del Registro di sistema (regedit.exe), aggiungere le due chiavi del Registro di sistema seguenti per eseguire il mapping del nodo Soft-NUMA 0 alle CPU 1 e 2, del nodo Soft-NUMA 1 alle CPU 3 e 4 e del nodo Soft-NUMA 2 alle CPU 5, 6, 7 e 8:

    SQL Server 2005

    Tipo

    Nome del valore

    Dati del valore

    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

    Tipo

    Nome del valore

    Dati del valore

    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