Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Всем дорого времени суток!

Сабж - запуск трассировщика в базе данных с фильтром по ObjectName - "нужная мне таблица" убивает подключения приложения к базе.

Select @@Version: Microsoft SQL Server 2014 (SP2-CU7) (KB4032541) - 12.0.5556.0 (X64) Enterprise Edition (Build 9600: )
База в Always On кластере, jбъем данных порядка 3TB, одновременно в базу подключается до 400 клиентов.

Коллеги, в чем может быть причина?
2 фев 18, 09:16    [21159582]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Ошибка, которую генерит внешнее приложение:

2018-02-02 10:45:11,879 [Pay_8c185f46-90ff-4b7b-87f1-e04ef43f4d24][982037][35] ERROR NHibernate.AdoNet.AbstractBatcher.Error (0) - Could not execute query: exec sp_Payments_GetPaymentHistory @locale=@p0, @userId=@p1,@dtBegin=@p2 , @dtEnd=@p3, @Page =@p4, @Count=@p5, @paymentinfoId=@p6, @subscriptionId=@p7
System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
2 фев 18, 09:19    [21159589]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Кусочек
Guest
Запуск Profilerа НЕ убивает клиентские подключения.

Ваше приложение запускает на выполнение хранимую процедуру sp_Payments_GetPaymentHistory, и падает по ошибке - Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

Что Вам тут не понятно?

Profiler работает не бесплатно, он тратит ресурсы + замедляет исполнения кода который попадет в условия настроенных фильтров для обработки.
2 фев 18, 09:31    [21159615]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Кусочек,

в коде процедуры не нашли явного использования этой таблицы, но код, мягко говоря, неоптимальный.
Спасибо! Будем подключать разрабов.
2 фев 18, 10:14    [21159723]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Kopilogus
в коде процедуры не нашли явного использования этой таблицы,

вы, кажется, не поняли, что вам сказали.
таблица, на которую натравлен профайлер, вообще не при делах.
ваше клиентское приложение имеет дефолтный таймаут на выполнение запроса,
если не ошибайись, это 30 секунд.
и вот если запрос в них не укладывается, т.е. по истечении 30 секунд нет ни одной строки результата,
запрос просто отваливается.

а тормозит ли выполнение профайлер, или бэкап, или соседний ресурсоемкий запрос,
вообще неважно
2 фев 18, 12:28    [21160199]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7754
автор
Коллеги, в чем может быть причина?


Профайлер съел ресурсы сервера. Умерьте его аппетиты, пишите лог в файл на другой компьютер.
2 фев 18, 14:05    [21160658]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Yasha123,

в конкретном случае дважды воспроизводили инцидент - при запуске профайлера, клиентские запросы к базе данных перестают ходить, служба мониторинга это отслеживает по количеству изменения записей в таблице логов (логи перестают писаться), и как следствие процедуры с web-application серверов начинают отваливаться по таймауту.

Попробуем проверить подобное поведение на тестовой платформе, но не понятно почему трассировка так кардинально меняет ситуацию на боевой базе, причем это сразу видно по загрузке сети и ЦПУ - и то и другое резко снижаются.
2 фев 18, 14:29    [21160759]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Владислав Колосов
автор
Коллеги, в чем может быть причина?


Профайлер съел ресурсы сервера. Умерьте его аппетиты, пишите лог в файл на другой компьютер.


Как я уже писал, наоборот наблюдали уменьшение загрузки ЦПУ и исходящего сетевого трафика.
2 фев 18, 14:31    [21160765]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Kopilogus
Владислав Колосов
пропущено...


Профайлер съел ресурсы сервера. Умерьте его аппетиты, пишите лог в файл на другой компьютер.


Как я уже писал, наоборот наблюдали уменьшение загрузки ЦПУ и исходящего сетевого трафика.



а блокировки?
2 фев 18, 14:45    [21160821]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
гогол
Kopilogus
пропущено...


Как я уже писал, наоборот наблюдали уменьшение загрузки ЦПУ и исходящего сетевого трафика.



а блокировки?


блокировок не наблюдали, просто очередь обращений встала, как будто сервер стал недоступным ...

Кстати похожая трассировка таблицы логов приводила к блокировкам, сразу наблюдались PAGELATCH, но к полному простою клиентской очереди это не приводило.
Но там в таблицу логов инсертятся тысячи записей в секунду, да и на чтение она активно используется (повешано много счетчиков на нее), а ее архитектура оставляет желать лучшего, правда эта уже отдельная история..
2 фев 18, 14:59    [21160877]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Kopilogus,

ну какая нибуть экзотика типа single user или ограничение на количество подключений
2 фев 18, 15:02    [21160897]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Kopilogus
Yasha123,

в конкретном случае дважды воспроизводили инцидент - при запуске профайлера, клиентские запросы к базе данных перестают ходить, служба мониторинга это отслеживает по количеству изменения записей в таблице логов (логи перестают писаться), и как следствие процедуры с web-application серверов начинают отваливаться по таймауту.

Попробуем проверить подобное поведение на тестовой платформе, но не понятно почему трассировка так кардинально меняет ситуацию на боевой базе, причем это сразу видно по загрузке сети и ЦПУ - и то и другое резко снижаются.

смотрите ожидания.
ведь перед тем, как упасть, запрос как минимум 30 секунд что-то ждет.
sys.dm_os_waiting_tasks
2 фев 18, 16:07    [21161220]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Profilerа убивает клиентские подключения  [new]
Kopilogus
Member

Откуда:
Сообщений: 49
Yasha123
Kopilogus
Yasha123,

в конкретном случае дважды воспроизводили инцидент - при запуске профайлера, клиентские запросы к базе данных перестают ходить, служба мониторинга это отслеживает по количеству изменения записей в таблице логов (логи перестают писаться), и как следствие процедуры с web-application серверов начинают отваливаться по таймауту.

Попробуем проверить подобное поведение на тестовой платформе, но не понятно почему трассировка так кардинально меняет ситуацию на боевой базе, причем это сразу видно по загрузке сети и ЦПУ - и то и другое резко снижаются.

смотрите ожидания.
ведь перед тем, как упасть, запрос как минимум 30 секунд что-то ждет.
sys.dm_os_waiting_tasks


Будем проверять на тестовой платформе в понедельник..
Спасибо всем за советы!
2 фев 18, 19:38    [21161737]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить