Активация памяти расширений AWE для SQL Server

В следующей версии Microsoft SQL Server эта возможность будет удалена. Не используйте ее при работе над новыми приложениями и как можно быстрее измените приложения, в которых она в настоящее время используется.

Расширения AWE позволяют 32-разрядным операционным системам обращаться к большим объемам памяти. Расширения AWE предоставляются операционной системой и реализованы с незначительными различиями в операционных системах Microsoft Windows 2000 Server и Windows Server 2003. Расширения AWE включаются с помощью Параметр awe enabled.

Использование отображаемой памяти расширений AWE с Windows 2000 Server

Экземпляры Microsoft SQL Server, выполняющиеся в Windows 2000, распределяют память во время запуска SQL Server согласно следующей последовательности событий.

  • Если доступная физическая память оказывается меньше, чем виртуальное адресное пространство пользовательского режима, расширения AWE включить не удастся. В этом случае SQL Server выполняется без использования расширений AWE независимо от значения параметра awe enabled.

  • Если доступная физическая память больше, чем виртуальное адресное пространство пользовательского режима, то расширения AWE можно включить.

    • Если объем доступной физической памяти превышает значение параметра max server memory, экземпляр SQL Server блокирует объем памяти, указанный в параметре max server memory.

    • Если доступная физическая память меньше, чем значение параметра max server memory, или если параметр max server memory не был установлен, экземпляр SQL Server блокирует всю доступную память, кроме 256 МБ.

  • После выделения отображаемой памяти расширений AWE она не может быть освобождена до закрытия SQL Server.

Настройка параметров памяти

Настоятельно рекомендуется устанавливать значение для параметра max server memory каждый раз при включении расширений AWE. Когда для параметра awe enabled установлено значение 1 (и доступная физическая память больше, чем пространство процесса непривилегированного режима), экземпляры SQL Server, выполняющиеся в Windows 2000, при запуске блокируют почти всю доступную память (или величину max server memory, если параметр был задан). Если параметр max server memory не установлен, другим приложениям или экземплярам SQL Server будет доступно меньше, чем 128 МБ физической памяти.

Пул расширенной памяти AWE не может быть выгружен в системные файлы подкачки. Если для использования требуется дополнительная физическая память, операционная система Windows должна выгрузить другие приложения, что может воспрепятствовать работе этих приложений.

Во избежание потери производительности других приложений настройте параметр max server memory таким образом, чтобы оставалось немного дополнительной свободной памяти для различных требований других приложений и операционной системы. Можно определить объем памяти, безопасно распределяемый экземплярам компонента SQL Server, установив количество памяти, доступной после того, как были запущены все другие приложения, использующиеся на компьютере.

ПримечаниеПримечание

В Windows 2000 Server параметр min server memory не учитывается для расширений AWE в SQL Server.

Используйте счетчик Общая память сервера (КБ) монитора производительности SQL Server, чтобы определить, сколько памяти распределено экземпляром SQL Server, выполняющимся в режиме AWE, или выберите сведения об использовании памяти из sysperfinfo.

Дополнительные сведения см. в разделе Мониторинг использования памяти.

Запуск нескольких экземпляров SQL Server с расширениями AWE

Если сервер работает под управлением Windows 2000, каждый экземпляр должен иметь настройку max server memory. Поскольку SQL Server в операционной системе Windows 2000 не поддерживает динамическое выделение отображаемой памяти расширений AWE, рекомендуется установить параметр max server memory для каждого экземпляра.

Сумма значений max server memory для всех экземпляров должна быть меньше, чем общая физическая память компьютера. Если сумма больше, чем общий объем физической памяти, некоторые из экземпляров не запустятся или будут иметь доступ к меньшему объему памяти, чем указано параметром max server memory. Предположим, что компьютер имеет 16 гигабайт (ГБ) физической памяти и три установленных экземпляра SQL Server. Кроме того, параметр max server memory установлен на 8 ГБ для каждого экземпляра. Если остановятся и перезапустятся все три экземпляра, память будет распределена следующим образом.

  1. Первый экземпляр имеет доступ к 8 ГБ физической памяти.

  2. Второй экземпляр запускается, но имеет доступ к несколько меньшему объему памяти, чем 8 ГБ (менее 128 МБ).

  3. Третий экземпляр запускается в режиме динамической памяти и имеет доступ к 256 МБ или к меньшему объему физической памяти.

Дополнительные сведения см. в разделе Управление памятью для больших баз данных.

Использование отображаемой памяти расширений AWE с Windows Server 2003

SQL Server поддерживает динамическое выделение памяти расширений AWE в Windows Server 2003. Во время запуска SQL Server резервирует только небольшую часть памяти расширений AWE. По мере появления потребности в дополнительной памяти AWE операционная система динамически выделяет ее SQL Server. Аналогично, если требуется меньшее количество ресурсов, SQL Server может вернуть отображаемую память расширений AWE операционной системе для использования другими процессами или приложениями. Дополнительные сведения о параметре конфигурации awe enabled см. в разделе Параметр awe enabled.

Объем поддерживаемой физической памяти вырос с выходом семейства операционных систем Windows Server 2003. Объем физической памяти, доступной расширениям AWE, зависит от используемой операционной системы. В следующем списке приведены сведения о максимальном объеме физической памяти, доступном для каждой операционной системы семейства Windows Server 2003, на момент написания данного раздела.

  • Выпуск Windows Server 2003 Standard Edition поддерживает до 4 ГБ физической памяти.

  • Выпуск Windows Server 2003 Enterprise Edition поддерживает до 32 ГБ физической памяти.

  • Выпуск Windows Server 2003 Datacenter Edition поддерживает до 64 ГБ физической памяти.

Настройка параметров памяти

SQL Server динамически распределяет память расширений AWE при выполнении в любом из выпусков операционной системы Windows Server 2003. Другими словами, буферный пул может динамически управлять отображаемой памятью расширений AWE (в пределах ограничений параметров min server memory и max server memory) для балансировки использования памяти SQL Server с общими требованиями к системе.

Когда расширения AWE включены, SQL Server всегда пытается использовать отображаемую память AWE. Это применимо ко всем конфигурациям памяти, включая компьютеры, настроенные на предоставление приложениям менее 3 ГБ адресного пространства в пользовательском режиме.

  • Рекомендуется установить AWE как режим памяти по умолчанию для SQL Server, работающего под управлением Windows Server 2003. Для функции памяти с «горячей» заменой необходимо, чтобы расширения AWE были включены во время запуска SQL Server. Дополнительные сведения см. в разделе Память с «горячей» заменой.
ПримечаниеПримечание

Расширения AWE не являются обязательными и не могут быть настроены в 64-разрядных операционных системах.

  • Так как отображаемая память расширений AWE поддерживается в области ниже 3 ГБ, можно определить значения min server memory и max server memory в пределах диапазона физической памяти или использовать значения по умолчанию для обоих параметров.

  • Можно рассмотреть настройку max server memory для SQL Server, чтобы гарантировать предоставление дополнительной памяти другим приложениям, работающим на компьютере. Хотя SQL Server может динамически освобождать отображаемую память расширений AWE, текущий объем распределенной отображаемой памяти расширений AWE не может быть переключен на файл подкачки.

Чтобы сделать расширения AWE доступными для экземпляра SQL Server, воспользуйтесь хранимой процедурой sp_configure, чтобы установить параметр awe enabled в 1, и затем перезапустите SQL Server.

Дополнительные сведения о параметрах min server memory и max server memory см. в разделе Параметры памяти сервера.

Прежде чем включить расширения AWE, необходимо настроить политику Закрепление страниц в памяти. Дополнительные сведения см. в разделе Как включить параметр «Блокировка страниц в памяти» (Windows).

Пример

Следующий пример показывает, как активизировать AWE и настроить ограничение 1 ГБ для min server memory и 6 ГБ для max server memory.

Сначала настройте AWE:

sp_configure 'show advanced options', 1
RECONFIGURE
GO

sp_configure 'awe enabled', 1
RECONFIGURE
GO

После перезапуска SQL Server будет записано следующее сообщение в журнал ошибок SQL Server: «Расширения AWE включены.»

Далее настройте память:

sp_configure 'min server memory', 1024
RECONFIGURE
GO

sp_configure 'max server memory', 6144
RECONFIGURE
GO

В этом примере настройки памяти устанавливают буферный пул для динамического управления отображаемой памятью расширений AWE между 1 ГБ и 6 ГБ. Если другому приложению потребуется дополнительная память, SQL Server может высвободить выделенную под расширения AWE память в случае ее ненадобности. В этом примере отображаемая память расширений AWE может быть высвобождена только до 1 ГБ.

Динамическая память AWE также позволяет SQL Server увеличивать память, если дополнительная память добавлена к компьютеру, который поддерживает память с «горячей» заменой. Доступная в Windows Server 2003, в выпусках Enterprise Edition и Datacenter Edition, память с «горячей» заменой позволяет добавить память во время работы компьютера. Предположим, что запуск SQL Server под управлением выпуска Windows Server 2003 Enterprise происходит на компьютере с 16 ГБ физической памяти. Операционная система настроена на предоставление приложениям не более 2 ГБ адресного пространства виртуальной памяти; расширения AWE были активированы для SQL Server. Позже системный администратор добавит 16 ГБ памяти во время работы компьютера. Службы SQL Server немедленно распознают дополнительную память и в случае необходимости задействуют ее.

Дополнительные сведения об использовании AWE см. в документации Windows Server 2003.

Запуск нескольких экземпляров SQL Server с расширениями AWE

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

Если сервер работает под управлением Windows Server 2003, для каждого экземпляра должен быть определен параметр min server memory. Поскольку SQL Server под управлением Windows Server 2003 поддерживает динамическое управление памятью расширений AWE, рекомендуется определить параметр min server memory для каждого экземпляра. Так как отображаемая память расширений AWE не может быть переключена на файл подкачки, сумма значений min server memory для всех экземпляров должна быть меньше, чем общая физическая память на компьютере.

Параметр min server memory не заставляет SQL Server получать минимальный объем памяти при запуске. Память распределяется по требованию, основываясь на рабочей загрузке базы данных. Однако, как только достигнут порог min server memory, память не будет освобождаться SQL Server, если это может привести к тому, что SQL Server останется с меньшим количеством памяти, чем указано в параметре. Чтобы гарантировать, что каждому экземпляру выделена память (по крайней мере, соответствующая значению параметра min server memory), рекомендуется выполнить загрузку сервера базы данных вскоре после запуска. В ходе нормальной деятельности сервера доступная экземпляру память меняется, но она никогда не станет меньше, чем значение параметра min server memory каждого экземпляра.

Можно задать параметр max server memory или оставить для него значение по умолчанию. Если оставить для параметра max server memory значение по умолчанию, это может привести к конкуренции за память между экземплярами SQL Server.

Использование кластера отработки отказа с AWE

Если используется кластер отработки отказа SQL Server и память AWE, необходимо гарантировать, что сумма настроек max server memory для всех экземпляров будет меньше наименьшего доступного объема физической памяти на любом из серверов в отказоустойчивом кластере. Если у узла отработки отказа физической памяти меньше, чем у исходного, может случиться, что экземпляры SQL Server не запустятся вообще или запустятся с меньшим объемом памяти, чем они имели на исходном узле.