Недостаточно системной памяти в пуле ресурсов по умолчанию для выполнения этого запроса


15

Я использую SQL Server 2014 - 12.0.2269.0 (X64) в Windows Server 2012, и у меня возникают некоторые проблемы с памятью. Когда я запускаю хранимую процедуру, которая выполняет довольно «тяжелые» вычисления, я получаю ошибку примерно через 10 минут:

Недостаточно системной памяти в пуле ресурсов «по умолчанию» для выполнения этого запроса.

Мой SQL Server имеет несколько баз данных (например, 15, но они не всегда используются одновременно). Я посмотрел на файл журнала SQL Server (после того, как получил ошибку), и я увидел много таких строк:

2015-12-17 12: 00: 37.57 spid19s Запрет выделения страниц для базы данных «Database_Name» из-за недостатка памяти в пуле ресурсов «default». Для получения дополнительной информации см. « Http://go.microsoft.com/fwlink/?LinkId=330673 ».

Отчет генерируется в журнале с памятью, используемой каждым компонентом (я думаю). Если я правильно интерпретирую отчет, мы увидим, что используется много памяти MEMORYCLERK_SQLBUFFERPOOL. Вы можете найти отчет здесь: http://pastebin.com/kgmk9dPH

Я также сгенерировал отчет с графиком, который показывает тот же «вывод»:

![использование памяти

Вот, может быть, еще один полезный отчет:

введите описание изображения здесь

введите описание изображения здесь

Обратите внимание, что я также видел эту ошибку в журнале:

2015-12-17 12: 04: 52.37 spid70 Не удалось выделить страницу из-за нехватки памяти базы данных: FAIL_PAGE_ALLOCATION 8

Вот некоторая информация относительно памяти сервера:

  • Общий объем памяти на сервере: 16 Гб

  • Память, выделенная для сервера SQL: 12288 Мб

  • Используемая физическая память (с sys.dm_os_process_memory): 9287 Мб

Если это может помочь, на сервере не размещается база данных SharePoint.


Каков максимальный объем памяти и общий объем оперативной памяти на сервере?
Кин Шах

Ответы:


6

Хотя это, вероятно, не является точным ответом на вашу проблему, я все равно опубликую ее, надеясь, что она поможет вам.

То, что вы видите, - это не то, MEMORYCLERK_SQLBUFFERPOOLчто MEMORYCLERK_SQLLOGPOOLзанимает всю память.

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

Также существует известная проблема как для 2014, так и для 2012 года, связанная с перестройкой индекса и always on. Вы не указали, что используете это, но, возможно, у той же ошибки есть и другие триггеры: FIX: кэш-память SQL уменьшается и увеличивается загрузка ЦП, когда вы перестраиваете индекс для таблицы в SQL Server

Поэтому мое лучшее предложение на данный момент - обновить до последней CU и посмотреть, произойдет ли это все еще, поскольку в последнее время было несколько исправлений MEMORYCLERK_SQLLOGPOOL. Поскольку вы работаете с RTM только с двумя исправлениями безопасности, которые могут иметь смысл, в SP1 + доступно несколько CU.

Так как в этой статье MEMORYCLERK_XTPиспользуется довольно высокое использование памяти , in-memory OLTPэто может помочь в устранении неполадок: мониторинг и устранение неполадок в использовании памяти

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.