Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
SomewhereSomehow,

для начала посмотри тормозящие запросы, может в них можно что-то поправить или индексы\статистику подкрутить. А может быть выяснится, что проблема наведенная, когда один запрос вешает лок на таблицу из-за которого остальные тормозят. Но пока не посмотришь на запросы, которые тормозят, ты этого не узнаешь.

Нет смысла вкладывать в диски если тормозит из-за локов например.
10 июл 14, 01:31    [16284210]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
gandjustas
SomewhereSomehow,

для начала посмотри тормозящие запросы, может в них можно что-то поправить или индексы\статистику подкрутить. А может быть выяснится, что проблема наведенная, когда один запрос вешает лок на таблицу из-за которого остальные тормозят. Но пока не посмотришь на запросы, которые тормозят, ты этого не узнаешь.

Нет смысла вкладывать в диски если тормозит из-за локов например.


Все, что я писал до этого и было целью выявить "тормозящие запросы". Когда они выявлены - нет проблем.
Уважаю Ваш вклад в сообщество, но и Вы уважьте, почитайте что я написал ранее.
10 июл 14, 01:41    [16284221]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
SomewhereSomehow
Эту же вьюху использует "хит" sp_WhoIsActive. Говорят, что если изучить все параметры этой процедуры, то можно овладеть дзеном сиквела =)
Да там не так уж и много параметров. Процедура хорошая, и я уже даже выпотрошил из неё все самое интересное, попутно баг нашел. Но на дзен все равно не тянет. Скажем, совсем нет инфы о использовании памяти под запросы (из dm_exec_query_memory_grants)

gandjustas
Второй запрос запускать когда тормозит.
Сидеть и ждать круглые сутки когда тормозить начнет?
Данная метода подходит для долгоиграющих запросов в DWH, но ее применение ограниченно когда на сервере сотни запросов в секунду. Опять же, некоторые ожидания могут быть достаточно продолжительными, допустим блокировки или ожидания памяти, там все просто. А вот, скажем, PAGEIOLATCH_EX длится миллисекунды и чтобы понять насколько конкретный запрос влияет на общую картину нужно ожидания просуммировать на протяжении жизни всего запроса, а это уже задача совсем другого порядка.


У меня есть идейка написать тул для сбора ожиданий в реальном времени по конкретным запросам/сессиям через XE и чтобы выводил это потом красивенько, но есть пара проблем, например: API для XE появился только в 2012. Или скажем, количество событий ожидания может быть настолько велико, что вычитка и парсинг XML-я может весьма нехило нагрузить сервер.
10 июл 14, 01:54    [16284249]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
rahzer
Member

Откуда:
Сообщений: 2294
Уже по записи лога видно, что на этом тормозит, запись это диски, ну не вывозят они..Энергозащищенный кэш хоть как-то разгрузит.
Но корневую причину нагрузки лучше бы найти.
10 июл 14, 03:35    [16284322]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Господа, нужно решать конкретную проблему, а не изобретать "универсальный решатель всего". Гёдель кстати доказал что их не существует.

Напомню конкретную проблему, озвученную ТС: после рестарта сервера система работает нормально, а потом начинает тормозить. Тормоза проявляются не спонтанно и, как я понял, не на отдельных запросах, а на системе в целом.

Поэтому для начала надо собрать статистику. Статистика говорит чего ждут запросы. Если статистика говорит, что 80% ожиданий приходится на PAGEIOLATCH_EX, даже если само ожидание составляет 1 мс, то вызвав 100 раз sys.dm_exec_requests 80 в среднем раз можно увидеть запросы, ожидающие PAGEIOLATCH_EX и понять что это за запросы, а дальше уже с ними разбираться почему они тормозят. На то она и статистика, что работает даже если вы об этом не знаете.

Если же низкая производительность проявляется всплесками, то статистика ожиданий не поможет, ибо сильно усредняет значения. Зато помогут extended events и\или трассировка.

А если тормозов нет, то и чинить ничего не надо.
10 июл 14, 03:36    [16284323]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Mind
Да там не так уж и много параметров. ...

Это был сарказм.

gandjustas,
Если собирать "статистику", правильным образом - конечно, это поможет. Собственно, выше я и процитировал свое же прошлое сообщение которое, можно обозвать: "как я собирал статистику". Оно не относится к теме напрямую, но может дать ТС идею. Ни с кем спорить не собирался, просто усомнился в том, что вы написали насчет ожиданий в сумме и по таскам и как это работает.
Вникать целиком в проблему ТС тоже не могу, время не позволяет, да и не очень это интересно.

ТСу,
мог бы порекомендовать действовать так, как я описал выше, хотя б логично. Но это, правда, требует опыта. Если нет такого опыта, и времени на его приобретение - нанять специалиста. Пусть он посмотрит и решит конкретную проблему, если возьмется.

Можно еще стрелять в воздух - на "авось попадет", давать всякие рандомные советы, основанные на догадках. Как иногда и бывает в жизни - такое тоже может сработать. Если сработает, то "язвительный" ТС может оправданно говорить: вот, нужно было всего лишь сделать А, а не АБВГД! Такое бывает. Отношусь к этому ровно. Но предпочитаю инженерный подход.

Удачи всем.
10 июл 14, 04:32    [16284337]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Друзья! Спасибо всем, кто пытается меня наставить на путь истинный. Из ваших обсуждений узнал много интересного.
Так вот
автор
Тормоза проявляются не спонтанно и, как я понял, не на отдельных запросах, а на системе в целом.

Наверное я не правильно объяснил, но дело в том что как раз спонтанно, и во всей системе в целом (по отзывам пользователей, но у тётенек если одна функция тормозит - это ВСЕ ТОРМОЗИТ!!!11).
Но то что спонтанно это точно. С момента создания темы таких тормозов не было ни разу, поэтому я стал заниматься общей "отладкой" производительности.
Показания счетчиков я снял во всех ипостасях, днем, ночью, за пару дней, за сутки. Во всех случаях максимальные значения выше положенного. Но правда это только максимальные, средние где нормальные где нет. Так и не удалось выяснить нормально это или нет.

SomewhereSomehow, спасибо, очень понравился ваш гайд, хотя в нем есть грустный абзац, которые про baseline и Workload. Прочитал у вас как настроить профайлер. Поковыряюсь, посмотрим, что у меня получиться. Хотя у меня уже есть трасса которую я собрал без этих настроек, выложить для анализа ?

автор
и времени на его приобретение - нанять специалиста

Пока что есть.

автор
Оно не относится к теме напрямую

Тема уже перешла в немного другое русло, так как тех самых тормозов после которых я тему и создал - пока что не было.

Сейчас я остановился на профайлере и ловле медленных запросов.
10 июл 14, 09:11    [16284656]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Имею на руках трассировку кратковременную и счетчики за это же время. Экспресс просмотр показал, что примерно за секунду до "всплеска" средней очереди на диск и средней записи на диск запускается хранимка. Правда иногда эта же хранимка запускается без всяких потом всплесков. Может кто то опытный посмотрит ? Вдруг вообще не туда смотрю.
10 июл 14, 22:11    [16289398]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
И да, вот еще что. В профайлере поле Reads у этих хранимок иной раз в полтора два миллиона. Это очень плохо ?
11 июл 14, 22:45    [16294379]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl,

Да, 1м страниц это 8гб данных, почти 100% table lock и долгое время выполнения.
Скорее всего эта хранимка создает так называемый "конвой", когда запросы начинают выстраиваться в очередь за одним тяжелым запросом и последние запросы в очереди работают неприемлемо долго.

Если одна и та же хранимка работает плохо лишь иногда, то может быть parameter sniffing problem. Нужно проанализировать актуальные планы с разными параметрами (с которым тормозит, и с которым нормально работает). Выложи планы в xml и текст хранимки, думаю тут ктонить сможет помочь.
12 июл 14, 03:48    [16295032]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, счетчик lock requests/sec в районе 250 000. А профайлер можно настроить так, чтобы он следил за хранимками и показывал какие запросы она делает ? Потому что у меня в трасе показывало только имя хранимки.
12 июл 14, 10:57    [16295245]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
gandjustas
Да, 1м страниц это 8гб данных, почти 100% table lock и долгое время выполнения.
Или банальный seek 166к записей по индексу с глубиной 6. Откуда тут "table lock"? А "долгое время выполнения" или нет, зависит от того, превратились ли эти логические риды в физические.
12 июл 14, 11:28    [16295335]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Гавриленко Сергей Алексеевич, все примерно вот так.

К сообщению приложен файл. Размер - 15Kb
12 июл 14, 11:57    [16295379]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl
gandjustas, счетчик lock requests/sec в районе 250 000. А профайлер можно настроить так, чтобы он следил за хранимками и показывал какие запросы она делает ? Потому что у меня в трасе показывало только имя хранимки.


Для планов нужно ловить в профайлнре эвент Showplan XML Statistics Profile, нужно обязательно сделать фильтр по процедуре. Трассировка планов дает очень большую нагрузку на сервер.

Нужны планы «хорошего» выполнения, которое не вызывает проблем и «плохого», а также текст самой процедуры.

250000 локов в секунду это дофига, а пользователей сколько и сколько запросов в секунду?
12 июл 14, 16:24    [16295926]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, This metric’s valueshould generally correspond to “Batch Requests/sec”. Это из таблички SQL Server Perfmon Counters of Interest, о которой писали выше. У меня Batch Requests/sec на уровне 100 000, хотя пики у этого счетчика бывают до миллиона. Хотя там написано < 1000, может у меня и должно столько быть ?
12 июл 14, 17:31    [16296019]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl,

А пользователей сколько?
12 июл 14, 18:13    [16296065]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, постоянно от 4 до 8, ночью 2. Но мне кажется, тут не в польхователях дело. Эту активность не пользователи создают, там сервер приложения постоянно читает/пишет.
12 июл 14, 18:17    [16296069]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl,

А что выдает запрос по ссылке http://blog.sqlauthority.com/2011/02/01/sql-server-introduction-to-wait-stats-and-wait-types-wait-type-day-1-of-28/

Желательно сделать
DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR);


и через полчаса выполнить запрос.
12 июл 14, 18:23    [16296078]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, ну да, я в прошлый раз уже делал, но каким то кривым запросом. Clear сделал, поработает - выложу. У меня теперь непонятности с профайлером. Я в прошлый раз трасу делал шаблоном стандарт, так там в textdata было exec 'имя хранимки'. Сейчас поставил SP:Starting и SP:Complited - процедуры уже с другими именами, это НЕ хранимки я так понимаю ? Процедуры эти в код зашиты ? Может есть готовый теймплейт для отлова планов хранимок ?
12 июл 14, 18:28    [16296082]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl,

Вот тут подробнее http://sqlity.net/en/976/capturing-parameters-of-a-stored-procedure-call/
12 июл 14, 19:04    [16296195]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl
gandjustas, постоянно от 4 до 8, ночью 2. Но мне кажется, тут не в польхователях дело. Эту активность не пользователи создают, там сервер приложения постоянно читает/пишет.

При таком раскладе стотыщ запросов в секунду это слишком много. Вообще не очень понятно что он там делает если пользователей почти нет.
12 июл 14, 19:08    [16296202]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, там есть несколько служб, одна из них принимает информацию с другого сервера, а другая полученную информацию раскидывает по таблицам моего серва. От туда и такая активность.
12 июл 14, 19:22    [16296225]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Ondayl
gandjustas, там есть несколько служб, одна из них принимает информацию с другого сервера, а другая полученную информацию раскидывает по таблицам моего серва. От туда и такая активность.


Куча маленьких запросов с отдельными insert?
Если да, то в статистике ожидания будет WRITELOG в топе. Нужно отдельные insert на bulk load пачками по 5000-10000 заменить. Подробнее тут http://arnosoftwaredev.blogspot.ru/2011/10/tips-for-lightning-fast-insert.html
12 июл 14, 19:37    [16296256]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
gandjustas, на русском есть ? Я с трудом понимаю английский.
12 июл 14, 20:25    [16296352]     Ответить | Цитировать Сообщить модератору
 Re: Рестарт служб sql влияет на производительность бизнес приложения.  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Если да, то в статистике ожидания будет WRITELOG в топе.

Ну да, вы правы.

К сообщению приложен файл. Размер - 10Kb
12 июл 14, 20:38    [16296389]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить