Как настроить сервер SQL Server на использование программной архитектуры NUMA

Для настройки сервера SQL Server на использование программного доступа к неоднородной памяти (программной архитектуры NUMA) необходимо отредактировать реестр, добавив в него маску схожести настройки узла. Маска программной архитектуры NUMA может быть задана как запись реестра, имеющая двоичный тип данных или тип данных DWORD (шестнадцатеричный или десятичный). Для настройки программной архитектуры NUMA необходимо перезапустить компонент Database Engine. Перед настройкой программного NUMA ознакомьтесь с разделами Основные сведения о неоднородном доступе к памяти и Как SQL Server поддерживает архитектуру NUMA.

Неправильное изменение реестра может вызвать серьезные проблемы. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.

В этом примере компьютер с восемью ЦП не имеет оборудования NUMA. Настроены три узла программной архитектуры NUMA. Экземпляр А компонента Database Engine настроен на использование процессоров от ЦП1 до ЦП4. Второй экземпляр компонента Database Engine установлен и настроен на использование от ЦП5 до ЦП8. Визуально пример может быть представлен следующим образом:

CPUs          1  2  3  4  5  6  7  8

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

SQL Server  <instance A ><instance B>

Экземпляр А, испытывающий значительные нагрузки ввода-вывода, имеет теперь два потока ввода-вывода и два потока модуля отложенной записи, в то время как экземпляр В, выполняющий операции с интенсивным использованием процессора, имеет только один поток ввода-вывода и один поток отложенной записи. Экземплярам может быть выделено различное количество памяти, но в отличие от оборудования NUMA, они оба получают память из одного блока памяти операционной системы, и здесь нет соответствия памяти и процессора.

Установка маски схожести ЦП

  1. Следующая инструкция выполняется в экземпляре А для его настройки на использование ЦП 1, 2, 3 и 4 путем задания маски схожести ЦП.

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 15;
    RECONFIGURE;
    GO
    
  2. Следующая инструкция выполняется в экземпляре В для его настройки на использование ЦП 5, 6, 7 и 8 путем задания маски схожести ЦП.

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 240;
    RECONFIGURE;
    GO
    
ПримечаниеПримечание

Значение маски схожести в примере применимо к компьютеру с 32-разрядной операционной системой.

Установка соответствия программного NUMA нескольким ЦП

  • При помощи программы редактора реестра (regedit.exe) добавьте следующие разделы реестра, чтобы установить соответствие между узлом 0 программной архитектуры NUMA и процессорами ЦП1 и ЦП2, узлом 1 программной архитектуры NUMA и процессорами ЦП3 и ЦП4, а также узлом 2 и процессорами ЦП5, ЦП6, ЦП7 и ЦП8.

    SQL Server 2005

    Тип

    Имя значения

    Данные

    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

    Тип

    Имя значения

    Данные

    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