Я использую 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.
источник
Ответы:
Хотя это, вероятно, не является точным ответом на вашу проблему, я все равно опубликую ее, надеясь, что она поможет вам.
То, что вы видите, - это не то,
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
это может помочь в устранении неполадок: мониторинг и устранение неполадок в использовании памятиисточник