Всем доброго дня!
Есть проблема: добавили память на сервер SQL, теперь периодическая загрузка ЦП 99-100%. Раньше памяти не было и проблемы не было. Как выяснить с чем связана проблема?

Нравится

9 комментариев

Здравствуйте!

Необходимо анализировать. Для начала стоит обратить внимание на процессы, которые больше всего занимают ресурс ЦП.

"Резвов Роман" написал:обратить внимание на процессы

Добрый день, Роман! Один процесс занимает ресурс: sqlservr :-)

Не редки случаи, когда 100% загрузка ЦП SQL сервером происходит при блокировках. Ранее у вас узкое место было в системе ввода-вывода, а теперь в обработке самих данных. Внимательно смотрите какие части БД на каких дисках располагаются, например, TEMPDB, по умолчанию находится на диске С, а в этой базе происходят сортировки и создания временных таблиц. Эту базу лучше класть на RAID, а еще лучше на SSD. Так же, не маловажным моментом является сбор статистики и дефрагментация индексов, это нужно делать каждый день.

"Евгений Либин" написал:

какие части БД на каких дисках располагаются, например, TEMPDB

Евгений, добрый день!

Блокировки действительно частое явление, пока не думал что с ними делать.

Я правильно понимаю: что при добавлении оперативной памяти кардинально меняется "узкое место"?
TEMPDB как и лог базы црм реально лежат на c:\ а не на ssd как сама база! Надо всё вместе с логами на ssd закинуть?

Да, обязательно. Это одно из узких мест БД

Но будьте аккуратными, SSD имеет ограниченный ресурс, и если будет утеряна TEMPDB, то вы ничего не потеряете, а вот с файлами данных могут быть проблемы. Лучше саму базу на 10 RAID, а темповую базу на SSD.

А какой то монитор по процессу sqlservr существует, типа профайлера, но чтоб все действия сервера видны были? Чтобы наверняка определить в чем причина периодических (каждые 3-5 мин) уходов процессора в 100%

Есть монитор активности, там видно какие сессии что делают, есть активность по запросам, а вообще это работа для DBA, т.е. настройка и тюнинг БД.

Начните с простого,в 60% это помогает
1. tempdb на ссд
2 ежедневный ребилд индексов и сбор статистики.

Дальше нужно смотреть, может индексов не достаточно, может наоборот, слишком много.

"Евгений Либин" написал:Есть монитор активности, там видно какие сессии

Евгений, спасибо! Именно благодаря этой замечательной функции (подсказал доблестный админ) в mssms и нашел косячную процедуру, которая в джобе часто запускалась. А еще понял (так же благодаря админу), что параллелизм зло, поэтому
Max Degree of Parallelism = 4 (а лучше вооюще 2 поставить)!!!

Показать все комментарии