Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

После применения этого обновления необходимо добавить флаг трассировки — T8075 в качестве параметра запуска, чтобы включить это изменение.

Проблемы

При выполнении запроса в 64-разрядной версии Microsoft SQL Server 2012 появляется сообщение об ошибке "недостаточно памяти", подобное приведенному ниже в журнале ошибок SQL Server.

Сбой выделения страниц: FAIL_PAGE_ALLOCATION 513

Выполнение запросов занимает много времени, и возникнет SOS_MEMORY_TOPLEVELBLOCKALLOCATOR ожидания. Когда вы просматриваете следующие информационные точки, вы обнаружите, что для виртуального адресного пространства очень мало свободного места:

  • Раздел DBCC MEMORYSTATUS-Process/System инвентаризации — Доступная виртуальная память

  • Представление DMV: sys.dm_os_process_memory-столбец virtual_address_space_available_kb

Эти значения начинаются около 8 терабайт (ТБ) в процессе x64 и продолжают переходить к нескольким гигабайтам (ГБ).  Если вы находитесь в рабочей области, где доступное виртуальное адресное пространство очень низкое, запросы, которые пытаются выполнить выделение памяти, также могут столкнуться с типом ожидания CMEMTHREAD. Следующие точки данных будут увеличиваться с течением времени.

  • Представление DMV: sys.dm_os_process_memory и sys.dm_os_memory_nodes-Column virtual_address_space_reserved_kb

  • Раздел DBCC MEMORYSTATUS-Memory Manager — виртуальная машина зарезервирована

Эти значения обычно увеличиваются в кратных значениях "max server memory" до почти 8 ТБ.

Причина

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

Решение

Сведения о накопительном пакете обновления

Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.

 

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

Это исправление предотвращает недостаточное количество памяти и непрерывное сокращение доступного виртуального адресного пространства, которое может возникнуть.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Дополнительная информация

  • Windows 2012 R2 позволяет виртуальному адресному пространству увеличиваться до размера 128 ТБ. Поэтому в средах Windows 2012 R2 эта проблема может не быть замечена. Дополнительные сведения можно найти в следующих разделах центра разработки для Windows:ограничения объема памяти для Windows и Windows Server, выпуски

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

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO

    Обычно это резервные копии журналов и операции обслуживания индексов, которые происходят часто.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×