У меня есть работающий сервис, который получает 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 месяцев, и тогда не было никакой ошибки, и нет никаких изменений в кодах.