Поделиться через


Параметр конфигурации сервера "affinity mask"

Замечание

Эта функция будет удалена в будущей версии Microsoft SQL Server. Не используйте эту функцию в новых работах разработки и не изменяйте приложения, которые в настоящее время используют эту функцию как можно скорее. Вместо этого используйте ALTER SERVER CONFIGURATION (Transact-SQL).

Для выполнения многозадачности Microsoft Windows иногда перемещает потоки процессов между различными процессорами. Хотя с точки зрения операционной системы эти действия эффективны, они могут снизить производительность SQL Server при больших системных нагрузках, так как данные кеша каждого процессора будут постоянно обновляться. Назначение процессоров определенным потокам может повысить производительность в этих условиях, устраняя перезагрузку процессора и уменьшая миграцию потоков между процессорами (тем самым уменьшая переключение контекста); такая связь между потоком и процессором называется сходством процессора.

SQL Server поддерживает сходство процессоров с помощью двух параметров маски сходства: маску сходства (также называемую маской сходства ЦП) и маской сходства операций ввода-вывода. Для получения дополнительной информации о параметре affinity I/O mask, см. раздел affinity Input-Output mask Server Configuration Option. Поддержка привязки ЦП и ввода-вывода для серверов с 33 до 64 процессорами требует дополнительного использования параметра конфигурации сервера mask affinity64 и параметра конфигурации сервера mask affinity64 Input-Output соответственно.

Замечание

Поддержка привязки для серверов с от 33 до 64 процессоров доступна только в 64-разрядных операционных системах.

Параметр маски привязки, который существовал в предыдущих выпусках SQL Server, динамически управляет привязкой ЦП.

В SQL Server параметр маски сходства можно настроить без перезапуска экземпляра SQL Server. При использовании sp_configure необходимо запустить RECONFIGURE или RECONFIGURE WITH OVERRIDE после настройки параметра конфигурации. При использовании SQL Server Express изменение параметра маски сходства требует перезагрузки.

Изменения в масках распределения происходят динамически, что позволяет по запросу включать и выключать планировщики ЦП, которые связывают потоки процессов в SQL Server. Это может произойти по мере изменения условий на сервере. Например, если на сервер добавляется новый экземпляр SQL Server, может потребоваться внести корректировки в параметр маски сходства для распространения нагрузки процессора.

Изменения в битовых масках привязки требуют, чтобы SQL Server включил новый планировщик CPU и отключил существующий планировщик CPU. Затем новые партии можно обрабатывать на новых или оставшихся планировщиках.

Чтобы запустить планировщик ЦП, SQL Server создает новый планировщик и добавляет его в список стандартных планировщиков. Новый планировщик учитывается только для новых входящих партий. Текущие задачи продолжают выполняться в том же планировщике. Работники переходят на новый планировщик по мере их освобождения или создания новых рабочих ролей.

Завершение работы планировщика требует, чтобы все пакеты в планировщике завершили свои действия и вышли. Планировщик, завершающий работу, помечается как автономный, чтобы в нем не планировался новый пакет.

Добавлен или удален новый планировщик, постоянные системные задачи, такие как lockmonitor, контрольная точка, поток задач системы (обработка DTC) и обработка сигналов, продолжают выполняться на планировщике, пока сервер работает. Эти постоянные системные задачи не переносятся динамически. Чтобы распространить нагрузку процессора для этих системных задач между планировщиками, необходимо перезапустить экземпляр SQL Server. Если SQL Server пытается завершить работу планировщика, связанного с постоянной системной задачей, задача продолжает выполняться в автономном планировщике (без миграции). Этот планировщик привязан к процессорам в измененной маске привязки и не должен нагружать процессор, к которому он был привязан до изменения. Наличие дополнительных автономных планировщиков не должно существенно влиять на нагрузку системы. Если это не так, перезагрузка сервера базы данных требуется для перенастройки этих задач.

Задачи сходства ввода-вывода (такие как ленивый автор и журналрайтер) напрямую влияют на маску сходства ввода-вывода. Если задачи lazywriter и logwriter не совпадают, они следуют тем же правилам, определенным для других постоянных задач, таких как lockmonitor или контрольная точка.

Чтобы убедиться, что новая маска сходства действительна, команда RECONFIGURE проверяет, что обычные сходства ЦП и ввода-вывода являются взаимоисключающими. Если это не так, сообщение об ошибке сообщается в сеансе клиента и в журнал ошибок SQL Server, указывающее, что такой параметр не рекомендуется. При запуске параметров RECONFIGURE WITH OVERRIDE можно настроить привязки ЦП и операций ввода-вывода, которые не являются взаимоисключающими.

Если указать маску сходства, которая пытается сопоставить с несуществующим ЦП, команда RECONFIGURE сообщает сообщение об ошибке как в сеансе клиента, так и в журнале ошибок SQL Server. Использование параметра RECONFIGURE WITH OVERRIDE не действует в этом случае, и эта же ошибка конфигурации сообщается снова.

Вы также можете исключить активность SQL Server из процессоров, которые назначены для выполнения определенных рабочих нагрузок операционной системой Windows 2000 или Windows Server 2003. Если задано значение 1, этот процессор выбирается ядром СУБД SQL Server для назначения потоков. Если задано affinity mask значение 0 (по умолчанию), алгоритмы планирования Microsoft Windows 2000 или Windows Server 2003 задают сходство потока. Если вы устанавливаете affinity mask в значение, отличное от нуля, аффинированность SQL Server трактует значение как битовую маску, указывающую процессоры, доступные для выбора.

Сегрегируя потоки SQL Server от выполнения на определенных процессорах, Microsoft Windows 2000 или Windows Server 2003 могут лучше оценить обработку системных процессов, относящихся к Windows. Например, на сервере с 8 процессорами и двумя экземплярами SQL Server (экземпляры A и B), системный администратор может использовать параметр affinity mask для назначения первого набора из 4 процессоров экземпляру A и второго набора из 4 процессоров экземпляру B. Чтобы настроить более 32 процессоров, задайте как affinity mask, так и affinity64 mask. Значения для affinity mask следующие:

  • Один байт affinity mask охватывает до 8 ЦП на многопроцессорном компьютере.

  • Два байта affinity mask охватывают до 16 ЦП на многопроцессорном компьютере.

  • Три байта affinity mask охватывают до 24 ЦП на многопроцессорном компьютере.

  • Четыре байта affinity mask охватывают до 32 ЦП на многопроцессорном компьютере.

  • Чтобы использовать более чем 32 ЦП, настройте четырехбайтовую маску привязки для первых 32 ЦП и до четырехбайтовой маски привязки64 для оставшихся ЦП.

Так как настройка сходства процессора SQL Server является специализированной операцией, рекомендуется использовать ее только при необходимости. В большинстве случаев связь по умолчанию для Microsoft Windows 2000 или Windows Server 2003 обеспечивает лучшую производительность. При настройке маски сходства следует также учитывать требования ЦП для других приложений. Дополнительные сведения см. в документации по операционной системе Windows.

Замечание

Системный монитор Windows можно использовать для просмотра и анализа использования отдельных процессоров.

При указании параметра маски сходства ввода-вывода необходимо использовать его в связи с параметром конфигурации маски сходства. Не активируйте один и тот же центральный процессор в коммутаторе affinity mask и опции маски привязки ввода-вывода. Биты, соответствующие каждому ЦП, должны находиться в одном из следующих трех состояний:

  • 0 в параметре маски сходства и параметре маски сходства ввода-вывода.

  • 1 в параметре маски сходства и 0 в параметре маски сходства ввода-вывода.

  • 0 в параметре маски сходства и 1 в параметре маски сходства ввода-вывода.

Осторожность

Не настраивайте привязку процессора в операционной системе Windows, а также маску привязки в SQL Server. Эти настройки предназначены для достижения одного результата, и если их значения будут несогласованными, результат может быть непредсказуем. Привязка ЦП в SQL Server лучше всего настраивается с помощью параметра sp_configure в SQL Server.

Пример

В качестве примера настройки параметра маски сходства, если процессоры 1, 2 и 5 выбраны как доступные с битами 1, 2 и 5, равными 1 и битам 0, 3, 4, 6 и 7, равным 0, шестнадцатеричное значение 0x26 или десятичному эквиваленту 38 указано. Пронумеруйте биты с права налево. Параметр маски сходства начинает подсчет процессоров от 0 до 31, поэтому в следующем примере счетчик 1 представляет второй процессор на сервере.

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

affinity mask Это значения для системы 8 ЦП.

Десятичная величина Двоичная маска бита Разрешить потоки SQL Server на процессорах
1 00000001 0
3 00000011 0 и 1
7 00000111 0, 1 и 2
15 00001111 0, 1, 2 и 3
31 00011111 0, 1, 2, 3 и 4
63 00111111 0, 1, 2, 3, 4 и 5
127 01111111 0, 1, 2, 3, 4, 5 и 6
255 11111111 0, 1, 2, 3, 4, 5, 6 и 7

Параметр маски сходства — это дополнительный параметр. Если для изменения параметра используется sp_configure системная хранимая процедура, можно изменить affinity mask только в том случае, если для отображения дополнительных параметров задано значение 1. После выполнения команды RECONFIGURE Transact-SQL новый параметр действует немедленно, не требуя перезапуска экземпляра SQL Server.

Неоднородный доступ к памяти (NUMA)

При использовании аппаратного неоднородного доступа к памяти (NUMA) и при установленной маске привязки каждый планировщик в узле будет привязан к своему собственному центральному процессору. Если маска сходства не задана, каждый планировщик сопоставляется с группой ЦП в узле NUMA, а планировщик, сопоставленный с узлом NUMA N1, может запланировать работу на любом ЦП в узле, но не на ЦП, связанном с другим узлом.

Любая операция, выполняемая на одном узле NUMA, может использовать только буферные страницы из этого узла. При параллельном выполнении операции на ЦП с нескольких узлов память может использоваться из любого узла.

Проблемы с лицензированием

Динамическое сходство тесно ограничено лицензированием ЦП. SQL Server не разрешает настройку параметров маски сходства, которые нарушают политику лицензирования.

Запуск

Если указанная маска сходства нарушает политику лицензирования во время запуска SQL Server или во время подключения базы данных, уровень ядра завершит процесс запуска или операцию подключения или восстановления базы данных, а затем сбросит значение запуска sp_configure для маски сходства до нуля, выдавая сообщение об ошибке в журнал ошибок SQL Server.

Перенастроить

Если указанная маска сходства нарушает политику лицензирования при выполнении команды RECONFIGURE Transact-SQL, сообщение об ошибке сообщается в сеансе клиента и в журнал ошибок SQL Server, требуя от администратора базы данных перенастройки маски сходства. В данном случае команда RECONFIGURE WITH OVERRIDE не принимается.

См. также

Наблюдение за использованием ресурсов (системный монитор)
RECONFIGURE (Transact-SQL)
Параметры конфигурации сервера (SQL Server)
sp_configure (Transact-SQL)
ALTER SERVER CONFIGURATION (Transact-SQL)