Вики IT-KB
Право блокировки страниц в памяти (Lock pages in memory)
Для учётной записи, от имени которой будет выполняться служба экземпляра SQL Server, рекомендуется установить разрешение, дающее возможность блокировки страниц в памяти (Lock pages in memory). Это позволит сократить количество обращений к виртуальной памяти на диске в случае нехватки ресурсов, отдавая приоритет работе в закрепленных страницах оперативной памяти.
В консоли Local Security Policy (secpol.msc) перейдём в раздел Local Policies > User Rights Assignment, найдём и настроим политику Lock pages in memory
В нашем примере право Lock pages in memory выдано учётной записи gMSA KOM\s-MS01$ , от имени которой будет выполниться основная служба экземпляра SQL Server Database Engine.
Внимание!
Если сервер 1С:Предприятие 8.3 планируется использовать на одной системе с SQL Server, то от данной настройки лучше воздержаться, чтобы SQL Server не отнимал чрезмерное количество ресурсов у системы и не мешал работе сервера 1С:Предприятие.
Дополнительные источники информации:
Проверено на следующих конфигурациях:
| Версия ОС | Версия SQL Server |
|---|---|
| Microsoft Windows Server 2012 R2 Standard EN (6.3.9600) | Microsoft SQL Server 2016 SP2 CU4 (13.0.5233.0) |

Автор первичной редакции:
Алексей Максимов
Время публикации: 12.02.2019 11:01
Обсуждение
1c/setting-up-microsoft-sql-server-for-1c-enterprise-8-3/lock-pages-in-memory.txt · Последнее изменение: 13.03.2023 15:26 — Алексей Максимов
Включение параметра «Блокировка страниц в памяти» (Windows)
Эта политика Windows определяет, какие учетные записи могут использовать процесс для сохранения данных в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске.
Блокировка страниц в памяти может повысить производительность, если требуется подкачка памяти на диск. Дополнительные сведения см. в статье Блокировка страниц в памяти (LPIM).
Для включения этой политики для учетной записи, используемой SQL Server, воспользуйтесь средством «Групповая политика Windows» ( gpedit.msc ). Чтобы изменить эту политику, необходимо быть системным администратором.
Включение параметра «Блокировка страниц в памяти»
- В меню Пуск выберите Выполнить. В окне Открыть введите gpedit.msc. Откроется диалоговое окно Групповая политика .
- На консоли Групповая политика локальной группы разверните раздел Конфигурация компьютера.
- Разверните узел Параметры Windows.
- Разверните узел Параметры безопасности.
- Разверните узел Локальные политики.
- Выберите папку Назначение прав пользователя . Политики будут показаны на панели подробностей.
- На панели прокрутите до политики Блокировка страниц в памяти и дважды щелкните ее.
- В диалоговом окне Параметры локальной политики безопасности щелкните **Добавить пользователя. *. Добавьте учетную запись службы SQL Server. Чтобы определить учетную запись службы для экземпляра SQL Server, обратитесь к диспетчеру конфигурации SQL Server или запросите service_account из sys.dm_server_services . Для получения дополнительной информации см. sys.dm_server_services (Transact-SQL).
- Щелкните ОК.
- Чтобы изменение вступило в силу, необходимо перезапустить экземпляр.
Дальнейшие действия
- Параметры конфигурации сервера «Server Memory»
- Руководство по архитектуре управления памятью
Обратная связь
Были ли сведения на этой странице полезными?
Блокировка страниц в памяти
Описывает рекомендации, расположение, значения, управление политиками и рекомендации по обеспечению безопасности для параметра политики «Блокировка страниц в памяти «.
Справочные материалы
Этот параметр политики определяет, какие учетные записи могут использовать процесс для хранения данных в физической памяти, что предотвращает разбиение данных на страницы в виртуальную память на диске.
Обычно приложение, работающее в Windows, может договориться о большем объеме физической памяти, и в ответ на запрос приложение начинает перемещать данные из ОЗУ (например, кэша данных) на диск. При перемещении на диск памяти, доступной для страницы, операционная система может использовать больше ОЗУ.
Включение этого параметра политики для определенной учетной записи (учетной записи пользователя или учетной записи процесса для приложения) предотвращает разбиение данных по страницам. Таким образом, объем памяти, который Windows может освободить под давлением, ограничен. Это ограничение может привести к снижению производительности.
При настройке этого параметра политики производительность операционной системы Windows будет отличаться в зависимости от того, выполняются ли приложения в 32-разрядных или 64-разрядных системах и являются ли они виртуализированными образами. Производительность также будет отличаться в более ранних и более поздних версиях операционной системы Windows.
Возможные значения
- Определяемый пользователей список учетных записей
- Не определено
Рекомендации
Рекомендации зависят от архитектуры платформы и приложений, работающих на этих платформах.
Location
Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment
Значения по умолчанию
В следующей таблице перечислены фактические и действующие значения политики по умолчанию для последних поддерживаемых версий Windows. Значения по умолчанию также можно найти на странице свойств политики.
| Тип сервера или объект групповой политики | Значение по умолчанию |
|---|---|
| Default Domain Policy | Не определено |
| Политика контроллера домена по умолчанию | Не определено |
| Параметры по умолчанию для автономного сервера | Не определено |
| Действующие параметры по умолчанию для контроллера домена | Не определено |
| Действующие параметры по умолчанию для рядового сервера | Не определено |
| Действующие параметры по умолчанию для клиентского компьютера | Не определено |
Управление политикой
В этом разделе описаны компоненты, средства и рекомендации, которые помогут в управлении этой политикой.
Для активации этого параметра политики не требуется перезагрузка компьютера.
Изменения прав пользователя вступают в силу при его следующем входе в учетную запись.
Групповая политика
Параметры применяются в следующем порядке через объект групповая политика , который перезаписывает параметры на локальном компьютере при следующем обновлении групповая политика:
- Параметры локальной политики
- Параметры политики сайта
- Параметры политики домена
- Параметры политики подразделения
Если локальный параметр выделен серым цветом, он указывает, что объект групповой политики в настоящее время управляет этим параметром.
Вопросы безопасности
В этом разделе описывается, каким образом злоумышленник может использовать компонент или его конфигурацию, как реализовать меры противодействия, а также рассматриваются возможные отрицательные последствия их реализации.
Уязвимость
Пользователи с правой блокировкой страниц в памяти могут назначать физическую память нескольким процессам, которые могут оставить мало ОЗУ для других процессов или отключать их, что приведет к отказу в обслуживании.
Противодействие
Не назначайте права пользователя блокировать страницы в памяти учетным записям.
Возможное влияние
Нет. Не определена конфигурация по умолчанию.
Связанные темы
Ошибка невыдающегося планировщика на сервере большой памяти, если параметр блокировки страниц в памяти отключен
На сервере, на котором размещен экземпляр SQL Server с большим объемом памяти, SQL Server часто выделяет и освобождает память. В этом сценарии, если параметр Блокировать страницы в памяти не включен для учетной записи службы SQL Server, SQL Server может столкнуться с невыдающимся условием планировщика и создать файл дампа памяти. В журнале ошибок SQL Server отображается следующая запись:
Process 0:0:0 () Worker appears to be non-yielding on Scheduler 1. Thread creation time: 13246605454359. Approx Thread CPU Used: kernel 70203 ms, user 0 ms. Process Utilization 69%. System Idle 76%. Interval: 70213 ms.
Ниже приведена верхняя часть стека:
sqldk!SOS_MemoryBlockAllocator::CommitBlockAndCheckNumaLocality sqldk!SOS_MemoryBlockAllocator::AllocateBlock sqldk!SOS_MemoryWorkSpace::AllocatePage sqldk!MemoryNode::AllocateReservedPages sqldk!MemoryClerkInternal::AllocateReservedPages
Причина
Эта проблема возникает при наличии большого размера или большого количества выделений памяти или освобождений, что приводит к длительному ожиданию завершения этих выделений и освобождений в ОС.
В записи время ядра почти совпадает с интервалом времени, что указывает на большое количество привилегированного времени ЦП.
Решение
Чтобы устранить эту проблему, включите параметр Блокировать страницы в памяти для учетной записи службы SQL Server, чтобы сохранить данные в физической памяти. После этой операции система будет использовать API расширений окон адресов (AWE) вместо VMM.
Чтобы включить параметр блокировки страниц в памяти, выполните следующие действия:
- Нажмите клавиши Win+R, в поле Открыть введите gpedit.msc.
- В консоли редактора локальных групповая политика разверните узел Конфигурация> компьютераПараметры Windows.
- Разверните узел Параметры> безопасностиЛокальные политики.
- Выберите папку Назначение прав пользователя . Политики будут отображаться в области сведений.
- В области дважды щелкните Блокировка страниц в памяти.
- В диалоговом окне — Локальные параметры безопасности блокировки в свойствах памяти щелкните Добавить пользователя или группу.
- В диалоговом окне Выбор пользователей, учетных записей служб или Групп выберите учетную запись службы SQL Server.
- Перезапустите службу SQL Server, чтобы этот параметр вступил в силу.
См. следующий снимок экрана консоли редактора локальных групповая политика.

Обратная связь
Были ли сведения на этой странице полезными?
