Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
1

Мониторинг MSSQL сервера (как отследить нагрузку)

14.04.2019, 18:57. Просмотров 406. Ответов 10

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

Есть серв, на 10ке, на нём стоит MS SQL с ssms. На серве 1 активная бд. (с базой работает 3 asp.net приложения).

Периодически серв проседает в производительности. Все запросы\хранимки отрабатывают с явной задержкой. Почему - не ясно.
Это не разовая задержка, это что-то что просаживает производительность и после чего вся последующая работа "замедлена". Спасает только перезагрузка серва.

Вопрос: как (какими инструментами, настройками, аналитиками и т.п.) отследить текущую производительность? Как понять корректность отработанных запросов (скорость "это норм" или "много" когда разница не совсем существенна)? (чтобы в дальнейшем на основе этой инфы искать дыры и их решение).

p.s. работы по глобальному with nolock проведены - местами стало легче, но "эта" (непонятная) проблема осталась.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2019, 18:57
Ответы с готовыми решениями:

Как отследить статус сервера?
Как отследить статус сервера - онлайн/офлайн, в частности статус стримов (own3dtv, twitch)....

Распределить нагрузку веб-сервера с помощью Squid и Apache
Я пытаюсь создать систему балансировки нагрузки для веб-сервера с помощью Squid и Apache. как...

Мониторинг сервера
Подскажите как можно примитивно посмотреть такие данные сервера как: загрузка процессора, его...

Мониторинг игрового сервера
Здравствуйте, друзья. Столкнулся вот с какой проблемой. Хочу сделать мониторинг сервера. Нашел в...

Мониторинг сети сервера
Доброго времени суток. Перерыв кучу статей, перепробовав кучу программ) не нашел ничего толкового. ...

10
qwertehok
2735 / 2417 / 641
Регистрация: 29.08.2013
Сообщений: 16,277
14.04.2019, 20:22 2
Цитата Сообщение от DarkOrk Посмотреть сообщение
Периодически серв проседает в производительности.
насколько периодически?
что по событиям сервера и винды?

Цитата Сообщение от DarkOrk Посмотреть сообщение
работы по глобальному with nolock проведены
это вообще не очень правильно
0
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
15.04.2019, 15:08  [ТС] 3
qwertehok, каждый день. То есть, после перезагрузки (если грузанул во второй половине дня) всё норм. Утром - всё норм. В обед - смерть. Грузанул в обед и всё по кругу.

В событиях чисто (нет ошибок и предупреждений о "полной попе"). Есть информационные, но я их почитал и там нефига интересного.
Не знаю на сколько вот это важно:

Кликните здесь для просмотра всего текста
Это после перезагрузке серва вываливается. Лажить начинает где-то через часа 3-4 так что это не связываю

A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 270416, committed (KB): 533116, memory utilization: 50%.


Есть идеи?

p.s. по with nolock почитаю. спс.
0
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
16.04.2019, 15:26  [ТС] 4
Ну где же вы, великие DB DEVELOPERы?
0
16.04.2019, 15:26
qwertehok
2735 / 2417 / 641
Регистрация: 29.08.2013
Сообщений: 16,277
16.04.2019, 16:32 5
может никто не хочет писать пока вы не дадите больше инфы?

нагрузку на сервер - в простое и когда "умирает"
данные по памяти, винтам, процессору

неплохо было бы профайлером подключиться и смотреть что происходит в этот момент
помониторить запросы которые выполняются
0
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
16.04.2019, 17:20  [ТС] 6
qwertehok, так к этому и тема. Я НЕ ЗНАЮ как это всё делать (вернее "что именно делать нужно").
Мне нужна помощь, в разборе мониторинга серва.

Память загружена на 3ть.
Проц вообще спит всегда (16 ядер, ему вообще скучно играться с нашим сервом и его задачами).
Диск (тут точно не знаю) - не видел пиковых нагрузок. В штатном режиме.
Сеть - на 10% от возможного.

По мониторингу из ssms самые больше паузы даёт Latch блокировки (ниже скрин. это "за 1 день").

Я почитал стати с msdn-а, почитал посты на хабре. Как бы ок. На первом есть варианты "куда смотреть", во втором "как решать", но и тот, и тот не даёт последовательный ответ.
Как бы, как запустить "расширенные события" или же настроить датчики мониторинга (в системном мониторинге) я понял, другой момент, я не понимаю какое значение будет говорить о том что "у нас тут полная попа" или же всё в пределах разумного исполняется.
Видел интересный вариант, на хабре, о том что план сервера строится на одних данных, по фарту, за время работы данные меняются, план становится не актуальным и серв "не правильно" работает (с точки зрения быстродействия), но, ещё раз, я новичок в этом вопросе и не понимаю "что хорошо,а что плохо" и где ЛУЧШЕ это смотреть.
0
Миниатюры
Мониторинг MSSQL сервера (как отследить нагрузку)  
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
17.04.2019, 09:29  [ТС] 7
Здравствуйте.
Вот, удалось получить гаф статистику, с большой нагрузкой (как раз в эти моменты и "проседает").

Как эту информацию интерпретировать и как посоветуют действовать? (плз, развёрнутые комменты, как для новичков)
0
Миниатюры
Мониторинг MSSQL сервера (как отследить нагрузку)  
invm
2229 / 1466 / 478
Регистрация: 02.06.2013
Сообщений: 3,661
17.04.2019, 10:01 8
DarkOrk, имеет место быть недостаток памяти.
В перфомансе мониторе смотрите для SQL Server значения счетчиков Target Server Memory и Total Server Memory. Они должны быть равны или незначительно отличаться.

Так же есть ожидания на блокировках. На каких и почему нужно выяснять дополнительно.
Необходимая информация есть в sys.dm_os_waiting_tasks и sys.dm_exec_requests.
Или установите sp_whoisactive

Само-собой бессмысленно что-либо анализировать вне моментов просадок.

Можете еще посмотреть подробную кумулятивную статистику ожиданий запросом вот отсюда - https://www.sqlskills.com/blogs/paul...here-it-hurts/
0
DarkOrk
17 / 17 / 8
Регистрация: 06.02.2015
Сообщений: 362
17.04.2019, 10:56  [ТС] 9
invm, этот скрин (по которому вы отписались) был получен при отключении параллелизма.
При отключенном параллелизме бы такие показатели. Стабильно появились блокировки и память периодически загружала (этот скрин как раз в такой момент поймал).

При включённом - проблемы с памятью не проявлялись (совсем). К слову, даже в тот момент когда был этот показатель, диспетчер не показывал всплесков по загруженности озу (30-40% стабильно).
Скрипт (по ссылки что вы дали) я видел. При работающем параллелизме, где-то 50 на 50 забирает на себя CXPACKET и LATCH_EX. (как решение, нашёл вариант отключить параллельность, но это не вариант (почему видно на скрине выше ) ).

ЦП стабильно работает, без перегрузок.
Диск тоже, по моему, качает. Очередь не создаёт.

Цитата Сообщение от invm Посмотреть сообщение
Само-собой бессмысленно что-либо анализировать вне моментов просадок.
Я это понимаю, но не знаю как сделать скрины\логи во время работы, не так что бы "показалось (на экране) и пропало", а что бы я это показать мог?! ...т.к. моих знаний, сейчас, не хватает чтобы самому это проанализировать, а как вы сами пишете "вне момента просадок" нефига не решить.

Кстати, о профайлере.
Может подскажите какие ивенты там настроить и на что смотреть (т.к. там действительно много всего и что именно мне надо, мне не ясно).

Ниже скрин по мониторингу при включённом параллелизме.
Как понять откуда берутся локи (на каких конкретно ресурсах и при каких запросах)?
0
Миниатюры
Мониторинг MSSQL сервера (как отследить нагрузку)  
invm
2229 / 1466 / 478
Регистрация: 02.06.2013
Сообщений: 3,661
17.04.2019, 11:25 10
Цитата Сообщение от DarkOrk Посмотреть сообщение
При работающем параллелизме, где-то 50 на 50 забирает на себя CXPACKET и LATCH_EX.
CXPACKET - нормальное явление при параллелизме и его можно игнорировать. Плюс наличие параллелизма, в большинстве случаев, свидельствует о кривости запросов.
Много ожиданий LATCH_EX говорит о проблемах с "писателями". Каких именно и надо выяснять.

Я не зря упоминал о sp_whoisactive. Этим средством можно анализировать ситуацию в момент "просадок" - выявлять запросы в состоянии suspended и смотреть на ожидании какого ресурса они висят.

Если версия позволяет, включите Query Store. См. в документации как этим средством выявлять деградировавшие запросы.
0
qwertehok
2735 / 2417 / 641
Регистрация: 29.08.2013
Сообщений: 16,277
17.04.2019, 11:57 11
Цитата Сообщение от DarkOrk Посмотреть сообщение
проблемы с памятью не проявлялись (совсем)
Цитата Сообщение от DarkOrk Посмотреть сообщение
ЦП стабильно работает, без перегрузок.
Диск тоже, по моему, качает. Очередь не создаёт.
значит проблем нет
0
17.04.2019, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2019, 11:57

Мониторинг сервера Лотус
Народ, может кто знает чем (какой софтиной, если есть конечно) произвести мониторинг сервера Лотус...

Мониторинг принт сервера
Может кто-нибудь подсказать, каким мониторингом пользуется или пользовался на print server на...

Мониторинг сервера (удаленно)
Задача: вывести информацию о сервере (характеристики, состояние, место на жестком диске и тд) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru