Недостаточно системной памяти в пуле ресурсов "default" для запуска этого запроса. на sql

У меня есть работающий сервис, который получает 50-100 запросов в минуту. И это не дорогостоящие запросы. Эта служба работает около 3-4 месяцев без каких-либо ошибок.

Неожиданно несколько дней назад он начал давать "Недостаточно системной памяти в пуле ресурсов" по умолчанию "для запуска этого запроса." ошибка изредка. Когда я исследовал проблему, я увидел, что sqlservr.exe использовал ~ 1.5 gb ram и% 25 CPU (все 1/4CPU). И когда я перезапустил sqlservr.exe, барабан начинается с ~ 50 МБ и медленно увеличивается, пока он не станет ~ 1,5 ГБ, а затем приведет к сбоям в приложениях, использующих его.

После того, как я сделал небольшое исследование, я подумал, что это вызвано выпуском сервера sql, который я использую. Это было выраженное издание, ограничивающее номера. Поэтому я обновил свой sql-сервер от '2008r2 express' до '2012 enterprise. Когда я начал службу, я подумал, что мои проблемы, наконец, закончились, поскольку служба использует только ~ 60 мб памяти, но через час, к сожалению, эта же проблема возникла, но на этот раз используемая память, которую я вижу в диспетчере задач Windows, все еще ~ 60 Мб, не превышая никаких ограничений.

Я использую EntityFramework как ORM в службе wcf. И вместе с этим у меня есть система SqlQueryNotification (брокер и прочее) для некоторых операций кеширования.

Не хватает ли некоторых важных точек конфигурации? Или 6 гб памяти и моего 4-го процессора действительно недостаточно для этого? Но это не может быть так, потому что одна и та же загрузка была такой, как в течение 3 месяцев, и тогда не было никакой ошибки, и нет никаких изменений в кодах.

ram allocated

ram usage

Ответы

Ответ 1

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

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

Он не освободит какую-либо из этой памяти до перезапуска службы; это по дизайну.

Обычно рекомендуется оставить 2 GB для ОС, и вам нужно помнить о любой другой обработке, выполняемой на том же сервере, что и SQL. Обычно рекомендуется иметь SQL Server на своем сервере без каких-либо других операций.

Тем не менее, 1,5 ГБ оперативной памяти для SQL Server не так уж и много. Если у вас больше нет доступа, возможно, пора добавить или обновить сервер.

См. также: Technet, Brent Ozar