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


Основные сведения о неоднородном доступе к памяти

Изменения: 5 декабря 2005 г.

Microsoft SQL Server 2005 совместим с архитектурой неоднородного доступа к памяти (NUMA) и хорошо работает на оборудовании NUMA без дополнительной настройки. С ростом тактовой частоты и количества процессоров становится труднее сократить время задержки памяти, необходимой для использования дополнительной производительности системы. Для устранения этого недостатка поставщики аппаратного обеспечения применяют большие кэши третьего уровня, но это является всего лишь полумерой. Архитектура NUMA обеспечивает масштабируемое решение этой проблемы. SQL Server 2005 позволяет использовать преимущество компьютеров на основе NUMA без необходимости каких-либо изменений в приложении.

Основные понятия NUMA

Новые тенденции в оборудовании предполагают наличие более одной системной шины, каждая из которых обслуживает небольшое количество процессоров. Каждая группа процессоров имеет свою собственную память и, возможно, свои собственные каналы ввода-вывода. В то же время каждый ЦП может иметь доступ к памяти, связанной с другими группами. Каждая группа называется узлом NUMA. Количество ЦП в узле NUMA определяется производителем оборудования. Доступ к локальной памяти происходит быстрее, чем к памяти, связанной с другими узлами NUMA. Поэтому такая структура памяти получила название — архитектура неоднородного доступа к памяти.

На оборудовании NUMA некоторые области памяти физически находятся на шинах, отличных от шин остальных областей. Поскольку NUMA использует локальную и удаленную память, доступ к одним областям производится дольше, чем к другим. Термины локальная память и удаленная память, как правило, употребляются относительно текущего выполняемого потока. Локальная память — это память, которая находится на том же узле, что и ЦП, выполняющий в настоящий момент данный поток. Любая память, не принадлежащая к узлу, на котором в настоящее время выполняется поток, называется удаленной. Удаленная память также иногда называется внешней. Отношение времен доступа к внешней и локальной памяти называется коэффициентом NUMA. Если коэффициент NUMA равен 1, значит, это симметричная многопроцессорная система. Чем выше этот коэффициент, тем больше издержки на доступ к памяти других узлов. Приложения Windows (в том числе SQL Server 2000, пакет обновления 3 и более ранние версии), не поддерживающие архитектуру NUMA, иногда выполняются на оборудовании NUMA неэффективно.

Главный выигрыш от использования NUMA — это масштабируемость. Архитектура NUMA разработана, чтобы преодолеть ограничения масштабирования, присущие архитектуре симметричной мультипроцессорной обработки (SMP). В архитектуре SMP доступ ко всей памяти производится через общую шину памяти. Для относительно небольшого числа процессоров это работает отлично, но при наличии десятков и даже сотен процессоров конкуренция за доступ к шине памяти слишком велика. NUMA устраняет эти узкие места, ограничивая количество ЦП на одной шине памяти и объединяя по высокоскоростному соединению множество узлов.

Узел NUMA с 4 процессорами

Сравнение аппаратной реализации NUMA с программной реализацией

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

Аппаратный NUMA

Компьютеры с аппаратной поддержкой NUMA имеют несколько системных шин, каждая из которых обслуживает небольшую группу процессоров. Каждая группа процессоров имеет свою собственную память и, возможно, свои собственные каналы ввода-вывода. Однако каждый ЦП может иметь доступ к памяти, связанной с другими группами. Каждая группа называется узлом NUMA. Количество ЦП в узле NUMA определяется производителем оборудования. Узнать, имеет ли компьютер аппаратную поддержку NUMA, можно у производителя аппаратного обеспечения.

Если аппаратная поддержка NUMA имеется, она может быть настроена так, что вместо NUMA используется чередующаяся память. В этом случае Windows и, следовательно, SQL Server, не обнаружат на компьютере аппаратной поддержки NUMA. Выполните следующий запрос, чтобы узнать, сколько узлов памяти доступно SQL Server:

SELECT DISTINCT memory_node_id
FROM sys.dm_os_memory_clerks

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

Программный NUMA

SQL Server 2005 позволяет группировать ЦП в узлы, называемые программными NUMA. Как правило, программный NUMA конфигурируется, когда имеется несколько ЦП, но нет аппаратной поддержки NUMA. Программный NUMA также можно использовать для дальнейшего разделения аппаратных NUMA-узлов на более мелкие группы. Только планировщик SQL Server и сетевой интерфейс SQL Server (SNI) поддерживают программный NUMA. Следовательно, программный NUMA не влияет на узлы памяти, созданные на основе аппаратной поддержки NUMA. Поэтому, например, если в компьютере с поддержкой SMP установлено 8 ЦП, при создании 4 программных NUMA-узлов по 2 ЦП в каждом все четыре NUMA-узла будут обслуживаться лишь одним узлом памяти. Программный NUMA не обеспечивает соответствия памяти и ЦП.

К преимуществам программного NUMA относятся уменьшение количества узких мест операций ввода-вывода и отложенной записи на компьютерах с большим количеством ЦП и без аппаратной поддержки NUMA. Для каждого NUMA-узла существует один поток ввода-вывода и один поток отложенной записи. В зависимости от использования базы данных эти единичные потоки могут создавать узкие места по производительности. Настройка 4 программных NUMA-узлов дает четыре потока ввода-вывода и отложенной записи, что может повысить производительность.

Нельзя создать программную конфигурацию NUMA, в которую включены ЦП, принадлежащие разным аппаратным NUMA-узлам. Например, если на компьютере установлено 8 ЦП (0...7) и имеется два аппаратных NUMA-узла (ЦП 0-3 и 4-7), можно создать программную NUMA-конфигурацию, объединив ЦП (0,1) и ЦП (2,3). Нельзя создать программную NUMA-конфигурацию с участием ЦП (1,5), но можно использовать соответствие ЦП, чтобы установить соответствие экземпляра SQL Server с ЦП, принадлежащими различным NUMA-узлам. Для предыдущего примера это означает, что если SQL Server использует ЦП 0-3, для них будет существовать один поток ввода-вывода и отложенной записи. Если в предыдущем примере SQL Server использует ЦП 1, 2, 5 и 6, он получит доступ к двум NUMA-узлам и, соответственно, двум потокам ввода-вывода и отложенной записи.

ms178144.note(ru-ru,SQL.90).gifПримечание.
В некоторых аппаратных конфигурациях общие ресурсы, такие как кэш L3/L4, используются совместно. Вокруг этих общих ресурсов можно группировать процессоры при создании программных NUMA-узлов.

Дополнительные сведения см. в разделе Как настроить сервер SQL Server на использование программного NUMA.

См. также

Задачи

Как настроить компонент Database Engine на прослушивание нескольких портов TCP
Как сопоставить порты TCP/IP порт с узлами NUMA
Как настроить сервер SQL Server на использование программного NUMA

Основные понятия

Как SQL Server 2005 поддерживает архитектуру NUMA
Сценарии NUMA
Распределение потоков ЦП
Параметр lightweight pooling
Работа с расписаниями задач и пакетов SQL Server

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

5 декабря 2005 г.

Измененное содержимое
  • в этой версии реорганизованы все подразделы, посвященные NUMA. Добавлены существенные новые сведения.