MSSQL 2008 R2 – 100% CPU

Вчера, столкнулся с неожиданной, но весьма неприятной проблемой – съел 100% ЦПУ и не хотел быстро отдавать данные. Просто небольшая заметка как мы нашли и пофиксили этот баг

Вчера, на одном из головных проектов нашей компании, клиент отметил необычайно низкую скорость загрузки страниц на сайте. В ходе иследования, было выявлено, что сервер баз данных MSSQL отъел себе 100% времени процессора, и никак не хотел снижать свои аппетиты.
Был привлечен технический лидер нашей компании, и он указал на одну из возможных причин – кеш запросов разросся до такой степени, что выборка из него занимало большое время, и потребляло приличное количество ресурсов.
После того, как я получил толчок от нашего лидера, Гугль принес мне в клюве результат – http://www.sqlservercentral.com/Forums/Topic1037692-1550-1.aspx#bm1038888

Вкратце, для снижения загрузки процедурного кеша и времени компиляции, необходимо включить встроенную процедуру оптимизации AdHoc Workloads при помощи 2х нижеприведенных процедур:

   sp_configure 'show advanced options', 1
   go
   reconfigure
   go

   sp_configure ' for ad hoc workloads', 1
   go
   reconfigure
   go

Что моментально снизило нагрузку на процессор до вполне переносимых 60% процентов и позволило сделать клиента довольным ;) .

This entry was posted in Жизнь сисадминская, Новости and tagged , , . Bookmark the permalink.

Comments are closed.