Ограничения вычислительной емкости для разных выпусков SQL Server
Область применения:SQL Server
В этой статье рассматриваются ограничения емкости вычислений для выпусков SQL Server и их различия в физических и виртуализированных средах с одновременными многопоточных процессорами (SMT). На ЦП Intel SMT называется Hyper-Threading.
Обзор
Эта таблица поясняет обозначения из предыдущей схемы.
значение | Описание |
---|---|
0..1 | Ноль или один |
1 | Ровно один |
1..* | Один или несколько |
0..* | Ноль или более |
1..2 | Один или два |
Дополнительный анализ
- У виртуальной машины (ВМ) есть как минимум один виртуальный процессор.
- Один или несколько виртуальных процессоров выделяются ровно одной виртуальной машине.
- Ноль или один виртуальный процессор сопоставляются с нулем или другим числом логических процессоров. При сопоставлении виртуальных процессоров с логическими процессорами:
- Один к нулю: представляет несвязанный логический процессор, не используемый гостевыми операционными системами.
- Один ко многим: представляет избыточное распределение.
- От нуля до многих: обозначает отсутствие виртуальной машины в системе-хосте. Поэтому в виртуальных машинах не используются никакие логические процессоры.
- Сокет сопоставляется с нулем или одним или несколькими ядрами. При сопоставлении сокетов к ядрам:
- Один-ноль: обозначает пустой сокет. Микросхема не установлена.
- Один на один: представляет собой одноядерный чип, установленный в разъеме. Такое сопоставление сейчас встречается редко.
- Один ко многим: означает многоядерный чип, установленный в разъеме. Обычно используются значения 2, 4 и 8.
- Ядро сопоставляется с одним или двумя логическими процессорами. При сопоставлении ядер с логическими процессорами:
- Один к одному: SMT отключен.
- Один к двум: SMT включен.
Далее даны определения терминов, используемых в этой статье.
Поток или логический процессор — это один логический вычислительный механизм с точки зрения SQL Server, операционной системы, приложения или драйвера.
Ядром называется единица процессора. Оно может состоять из одного логического процессора или нескольких.
Физический процессор может содержать одно или несколько ядер. Физический процессор также называется процессорным пакетом или сокетом.
Ограничение числа логических ядер на узел NUMA до 64
Вы можете столкнуться с такими проблемами, как дампы стека, на серверах с более чем 64 логическими процессорами на узел NUMA. Конфигурация BIOS или встроенного ПО может сократить количество логических ядер, представленных операционной системе, до максимум 64 логических процессоров на узел NUMA.
Внимание
Накопительное обновление 11 SQL Server 2022 (16.x) представило критическое изменение, в результате которого ядро СУБД не запускается, если оно выявляет более 64 логических ядер на каждом узле NUMA.
Начиная с SQL Server 2022 (16.x) накопительного обновления 15, программа установки выдает предупреждение о том, что эта конфигурация не поддерживается и приведет к остановке и отключению службы ядра СУБД. Предупреждение также включается в журналы установки.
Вы можете уменьшить количество логических ядер на узел NUMA на виртуальной машине Azure, отключив SMT. Для экземпляров SQL Server без операционной системы можно уменьшить количество логических ядер с помощью параметров кластеризации sub-NUMA (SNC) или узлов на сокет (NPS).
Отключение SMT в виртуальной машине Azure
SQL Server имеет поддерживаемое ограничение в 64 логических ядер на узел NUMA. В некоторых случаях виртуальная машина серии Azure Mv3 может превысить это ограничение, что предотвращает запуск SQL Server или разрешение на запуск с низкой производительностью. Чтобы отключить SMT, внесите следующие изменения с помощью PowerShell и редактора реестра (reg.exe
). Перед редактированием не забудьте создать резервную копию реестра.
Проверьте количество логических ядер. SMT включен, если соотношение равно 2:1 (число логических ядер в два раза больше числа ядер).
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
Отключите SMT со следующими двумя изменениями реестра, а затем перезагрузите виртуальную машину.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
Снова проверьте количество логических ядер. Число логических ядер должно соответствовать количеству ядер.
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property "NumberOfCores", "NumberOfLogicalProcessors"
Сокращение количества логических ядер на экземплярах без операционной системы
В следующих разделах описывается, как уменьшить количество логических ядер на экземплярах SQL Server без операционной системы.
Процессор Intel Xeon
На процессорах третьего, четвертого и пятого поколения Intel Xeon можно включить кластеризацию sub-NUMA (SNC), ранее называемую "Кластер-на-кристалле" (CoD), что приводит к образованию двух доменов NUMA в одном физическом сокете.
Заметка
Шестое поколение процессоров Intel Xeon по умолчанию включает кластеризацию sub-NUMA (SNC2 или SNC3). В некоторых моделях ЦП конфигурация SNC по умолчанию может привести к более чем 64 логическим процессорам на узел NUMA. Для этих моделей ЦП следует активировать функцию Intel virtual NUMA в BIOS или встроенном ПО вместе с SNC2 или SNC3.
Параметр конфигурации | Описание |
---|---|
SNC отключен 1 | Отключает кластеризацию sub-NUMA. |
SNC2 включен | Предусмотрено два узла NUMA на каждый сокет. |
SNC3 с поддержкой 2 | Включает три узла NUMA на каждый сокет. |
Intel VirtualNuma с поддержкой 3 | Создает несколько виртуальных узлов в одном физическом узле NUMA. |
1 По умолчанию для третьего, четвертого и пятого поколения процессоров Intel Xeon.
2 По умолчанию для шестого поколения процессоров Intel Xeon и более поздних версий.
3 доступно только в шестом поколении процессоров Intel Xeon и более поздних версий. Используйте этот параметр для ЦП с высоким числом ядер, где число логических процессоров на узел NUMA превышает 64 при использовании по умолчанию SNC.
ЦП AMD
На центральных процессорах AMD можно включить различные опции NPS (узлы на сокет).
Параметр конфигурации | Описание |
---|---|
NPS0 |
В системе с двумя сокетами NUMA представляет собой один узел со всеми каналами памяти, пересекаемых по узлу. |
NPS1 (по умолчанию) |
Эта конфигурация представляет один узел NUMA на сокет. |
NPS2 |
Эта конфигурация представляет два узла NUMA на сокет, аналогичный SNC. |
NPS4 |
Эта конфигурация предоставляет четыре узла NUMA на сокет. |
Замечания
Системы с несколькими физическими процессорами или системами с физическими процессорами с несколькими ядрами и (или) SMT позволяют операционной системе одновременно выполнять несколько задач. Каждый поток выполнения представляется как логический процессор. Например, если на компьютере есть два четырехядерных процессора с поддержкой SMT и два потока на ядро, у вас есть 16 логических процессоров: 2 процессора x 4 ядра на процессор x 2 потока на ядро. Стоит отметить, что:
Вычислительная емкость логического процессора, использующего один поток ядра SMT, меньше вычислительной емкости логического процессора из того же ядра с выключенной поддержкой SMT.
Вычислительные мощности двух логических процессоров в ядре SMT больше вычислительной емкости одного ядра с отключенным SMT.
Каждый выпуск SQL Server имеет два ограничения емкости вычислений:
Максимальное число сокетов (физических процессоров или процессорных пакетов)
Максимальное число ядер, обнаруженных операционной системой
Эти ограничения применяются к одному экземпляру SQL Server. Они представляют максимальную емкость вычислений, которую использует один экземпляр. Они не накладывают ограничений на сервер, на котором может быть развернут экземпляр. На самом деле развертывание нескольких экземпляров SQL Server на одном физическом сервере является эффективным способом использования вычислительной емкости физического сервера с большим количеством сокетов и (или) ядер, чем разрешено ограничения емкости.
В следующей таблице указаны ограничения емкости вычислений для одного экземпляра каждого выпуска SQL Server:
Выпуск SQL Server | Максимальная емкость вычислений для одного экземпляра (SQL Server ядро СУБД) | Максимальная емкость вычислительных ресурсов для одного экземпляра (AS, RS) |
---|---|---|
Выпуск Enterprise: лицензирование на основе количества ядер 1 | Максимальное значение, поддерживаемое операционной системой | Максимальное значение, поддерживаемое операционной системой |
разработчик. | Максимальное значение, поддерживаемое операционной системой | Максимальное значение, поддерживаемое операционной системой |
Стандарт | Ограничение: меньшее из 4 процессоров и 24 ядер | Ограничено меньшим из 4 сокетов или 24 ядер |
Экспресс | Ограничено: либо 1 сокет, либо 4 ядра, в зависимости от того, что меньше. | Ограничение: меньшее из 1 процессора и 4 ядер |
1 Выпуск Enterprise с серверной лицензией + лицензией клиентского доступа (CAL) ограничен 20 ядрами на экземпляр SQL Server. (Это лицензирование недоступно для новых соглашений.) Нет ограничений в модели лицензирования сервера на основе ядра.
В виртуальном окружении вычислительная емкость ограничена количеством логических процессоров, а не ядер. Причина заключается в том, что архитектура процессора не отображается гостевым приложениям.
Например, сервер с четырьмя сокетами, заполненными четырехядерными процессорами, и возможность включения двух потоков SMT на ядро содержит 32 логических процессора с поддержкой SMT. Но он содержит только 16 логических процессоров с отключенным SMT. Эти логические процессоры можно сопоставить с виртуальными машинами на сервере. Вычислительная нагрузка виртуальных машин на данный логический процессор сопоставляется одному потоку выполнения в физическом процессоре на сервере.
Вы можете отключить SMT, если производительность каждого виртуального процессора важна. Вы можете настроить SMT с помощью параметра BIOS для процессора во время настройки BIOS, но обычно это операция с областью действия сервера, которая влияет на все рабочие нагрузки, выполняемые на сервере. Вы можете рассмотреть возможность разделения рабочих нагрузок, выполняемых в виртуализированных средах, и тех, которые будут использовать повышение производительности SMT в физической операционной системе.
Связанный контент
- Выпуски и поддерживаемые функции SQL Server 2022
- Спецификации максимальной емкости для SQL Server
- Руководство по установке SQL Server
Получите помощь
- Идеи об SQL. Есть рекомендации по улучшению SQL Server?
- Вопросы и ответы по продуктам Майкрософт (SQL Server)
- DBA Stack Exchange (тег sql-server): вопросы о SQL Server
- Stack Overflow (тег sql-server): ответы на вопросы о разработке SQL
- Условия лицензии и информация о Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Дополнительная справка и отзывы по SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Дополнительные сведения см. в разделе Участие в работе над документацией по SQL Server.