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

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

Экземпляры 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 ГБ для каждого экземпляра. Если остановятся и перезапустятся все три экземпляра, память будет распределена следующим образом.

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

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

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

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:

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

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

В этом примере настройки памяти устанавливают буферный пул для динамического управления отображаемой памятью расширений 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.

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

I am running SQL Server Express Edition with Advanced Services on Windows Server 2008 Enterprise 32 bit OS.

I have enabled "Use AWE to allocate memory" on the SQL Server, but I am not sure if this will help at all as in the Microsoft Documentation it says that AWE is not supported for SQL Server 2008 Express.

Why then there is check box for a option that supposedly is not supported?

I would go with the Standard edition of SQL Server if I know for sure that AWE is not supported in SQL Server Express.

Я запускаю SQL Server Express Edition с расширенными службами на Windows Server 2008 Enterprise 32-разрядной ОС.

Я включил «Использовать AWE для выделения памяти» на SQL Server, но я не уверен, что это вообще поможет, так как в документации Microsoft говорится, что AWE не поддерживается для SQL Server 2008 Express.

Почему тогда установлен флажок для опции, которая предположительно не поддерживается?

Я бы пошел со стандартной версией SQL Server, если я точно знаю, что AWE не поддерживается в SQL Server Express.

Создан 12 сен. 14 2014-09-12 15:01:23 ata

AWE is useful for your OS to be able to allocate SQL Server more than the limited 4GB of a 32 bit operating system. The fact that your OS will support more than 4 GB for a process doesn’t mean your Express SQL will do. It’s 2014, switch to: 64 bit OS, any supported SQL Server edition. That will be a better decision than investing time and money in a old SQL/OS pair. – Marian 13 сен. 14 2014-09-13 16:29:48

1 ответ

There is no point in checking AWE on express edition when SQL Server can see ‘just’ more than 1G memory. Although it says SQl server can take maximum up till 1G on express edition it takes bit more than that.

AWE is a windows feature in 32 bit which allow SQL Server to use memory greater than its VAS limit. VAS limit for SQL server 32 bit running on 32 bit windows machine is 2G and on WOW system is 4 G. Using AWE SQL Server data and index pages can use memory beyond its VAS limit of 2 G. But since in your case max server memory is 1G there is no point in enabling it. And this is the reason I guess why documentation says so.

As to why it is there because MS does not wants to make change. AWE on 64 bit server has also no meaning but this option is there as well.

I would go with standard edition of SQL if I know for sure that AWE is not supported in SQL Express?

Go with standard edition 64 bit and yes you would also need 64 bit OS for that. 32 bit server these days have lots of performance restriction especially in terms of memory and VAS. 64 bit will have 8 TB VAS and enough memory to support. 32 bit server is kind of outdated now ( unless you have grave requirement)

Создан 12 сен. 14 2014-09-12 15:13:43 Shanky

Thanks for the response. The thing is that we bought Windows Server Enterprise x32 bit just to be able to address more RAM. The server has 24GB of ram but we are using SQL 2008 Express. – ata 12 сен. 14 2014-09-12 18:28:53

Its good that you have enterprise edition you can enable PAE so that win OS can see more than 4 G. Now with OS able to see more than 4 G if SQL Server is standard/enterprise edition you can then enable AWE so that SQL Server data and index pages can access more than 2 G RAM. In this case AWE would certainly help and should be enabled. – Shanky 12 сен. 14 2014-09-12 19:29:20

Address Windowing Extensions (AWE) — программный интерфейс в ОС семейства Microsoft Windows, позволяющий 32-битному приложению получить доступ к оперативной памяти, размер которой превышает размеры доступного приложению виртуального адресного пространства (2-3 [1] гигабайта). Процесс отображения дополнительной памяти в адресное пространство приложения при помощи AWE называется «windowing» (оконный доступ) и схож с концепцией «overlay», используемой, например, в DOS. AWE подходит для приложений, обрабатывающих большие объёмы данных, например СУБД, научных и инженерных приложений.

Приложение выделяет регион памяти, называемый окно ( window ), в виртуальном адресном пространстве и запрашивает при помощи интерфейса выделение одного или нескольких регионов физической памяти. Позже интерфейс позволяет приложению отобразить любой выделенный регион физической памяти на окно в адресном пространстве. Допустимо создание нескольких окон, таким образом, что суммарный размер окон не превышает размер доступного виртуального адресного пространства. Размеры окон и регионов физической памяти могут быть произвольными (кратными размеру страницы памяти, 4096 байт), но на любое из окон возможно отображение региона физической памяти, не превосходящего по размеру окно.

Использование AWE должно быть заложено в код приложения. Также приложение должно иметь права «Lock Pages in Memory» (блокирование фрагмента памяти от выгрузки) для использования AWE.

AWE не зависит от расширения Physical Address Extension и не препятствует его использованию [2] .

В статье 2004 года, опубликованной в Dr. Dobb’s Journal, отмечалось, что память, выделенная при помощи Address Windowing Extensions, не подлежит сохранению в swap-файле, и было высказано предположение, что регионы AWE-памяти можно использовать для защиты данных, например, ключей шифрования. [3]

Также возможным примером может являться специальный патчер: для 32-битных приложений в Windows можно использовать специальный патчер, который снимает лимит используемой ОЗУ в 2 ГБ без необходимости его перекомпилировать. Применим и для 32-битных приложений в 64-битной среде Windows с аналогичной целью. Это нужно в основном для увеличения адресного пространства 32-битных приложений, так как они ограничиваются вышеуказанным объемом в 2 ГБ на каждый процесс [4] . Но стоит также отметить, что этот способ не всегда работает и приложение может перестать запускаться. И в некоторых случаях пропатченное приложение таким образом может увеличить свою производительность, например, скорость запуска уровня в некоторых играх.

Примечание