|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Есть предложение по такой фиче. При реализации таймаутов, предусмотреть в конфиге настройку для них трех видов: 1. Отключить. 2. Включить с прерыванием. 3. Включить с логированием. Первый пункт очевиден. Второй - при наступлении таймаута, сервер выполняет обычное действие (дропает коннект, завершает транзакцию и т.д.). Третий пункт вот для чего. При его активации, сервер в случае таймаутов пишет в специальный файл лог об этом: База данных; Дата/время; Пользователь; Тип таймаута (коннект, транзакция, запрос); Время старта; Для запросов имеет смысл писать сам запрос, параметры и план. Таким образом, администратор/разработчик может в любое время, прозрачно для пользователя, посмотреть, все ли нормально - были ли зависшие транзакции, долго выполняющие запросы и прочее. Можно даже добавить еще режим: 4. Включить с прерыванием и логированием. Таким образом, убиваются несколько зайцев: 1. Диагностика проблем с долгими запросами. 2. Диагностика плохого управления транзакциями. 3. Прозрачность для любых клиентов. При использовании чужого ПО, можно видеть проблемы и сообщить о них разработчику. 4. Отсутствие необходимости логировать эти таймауты через приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:57 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Добавлю - при третьем пункте, сервер не прерывает коннект/транзакцию/запрос, а оставляет как есть, уже не возвращаясь к нему. Только пишет в лог о сработке таймаута. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:00 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, по третьему пункту Влад сказал, что это задача трейса/аудита (долгие запросы там и сейчас можно отследить, коннекты и транзакции пока нет). 1 пункт очевиден. Скорее всего выключаться будет установкой времени таймаута в 0. Если таймаут будет установлен прерывание будет всегда. А вот лог можно будет получить если есть настройка в аудите. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:04 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Дениспо третьему пункту Влад сказал, что это задача трейса/аудита (долгие запросы там и сейчас можно отследить, коннекты и транзакции пока нет). 1 пункт очевиден. Скорее всего выключаться будет установкой времени таймаута в 0. Если таймаут будет установлен прерывание будет всегда. А вот лог можно будет получить если есть настройка в аудите. Я не хочу стрелять из пушки по воробьям. Я хочу настроить: 1. Для всех баз (в конфиге) таймаут для неподтвержденной пишущей транзакции - 5 минут с прерыванием и логом. Это для отлова забытых в IBE обработок или слишком уж долгих обработок БД. 2. Для указанной транзакции таймаут в 1 минуту с логом без прерывания. Это для отлова слишком долго выполняющихся отчетов. На крайний случай, можно будет приделать к каждому отчету его граничное время выполнения. Что сведет ложное срабатывание и проблемы с отчетами к нолю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
CyberMax, я тоже примерно тоже самое сначала хотел. Потом после объяснений Влада подумал и согласился с ним. Вместо таймаута с логом без прерывания предлагаю отдельный фильтр для трейса/аудита позволяющий поймать длительные неактивные коннекты/транзакции. Это кстати может быть сделано и в рамках 2.5, если конечно Влад не найдёт аргументов против этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 10:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladА не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ?Вопрос как минимум интересный, у меня, например, на него нет однозначного ответа. <хотелка ОН>Сделать оба и вывести рычаги управления в конфиг?</хотелка ОФФ> ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 11:23 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисВместо таймаута с логом без прерывания предлагаю отдельный фильтр для трейса/аудита позволяющий поймать длительные неактивные коннекты/транзакции. Это кстати может быть сделано и в рамках 2.5, если конечно Влад не найдёт аргументов против этого.1. Это в рамках 2.х можно смотреть и обрывать используя мониторинг. 2. В трейсе я предлагал писать события убиения запроса\тр-ции\коннекта по таймауту. Это не то же самое, что обнаружение простаивающих тр-ций\коннектов (или тормозящих запросов) по истечение некоторого таймаута. И опять же, таковое обнаружение уже сейчас можно делать самостоятельно через мониторинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyhvladА не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ?Вопрос как минимум интересный, у меня, например, на него нет однозначного ответа. <хотелка ОН>Сделать оба и вывести рычаги управления в конфиг?</хотелка ОФФ>Очень не хочется добавлять это в конфиг. Я пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЯ пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей).Я рассматриваю житейскую ситуацию, когда юзер ошибся в параметрах отображения/фильтра и вынуждает программу фетчить мильон-другой записей на клиента. образно вылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой.Мне он такой нахрен не нужен, ошибку по таймауту ему в зубы, чтоб дорогу не загораживал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
"Пони бегает по кругу..." Ivan_Pisarevskyвылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой Так значит хайвей надо расширять, отдельные полосы сужать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:41 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvlad, сейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:43 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов Дениссейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как?Согласен, напрямую никак. Только косвенно, по отсутствию активных запросов в этой тр-ции. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyhvladЯ пока что склоняюсь к варианту переустановки таймера на каждом фетче (группе фетчей).Я рассматриваю житейскую ситуацию, когда юзер ошибся в параметрах отображения/фильтра и вынуждает программу фетчить мильон-другой записей на клиента. образно вылез на своем тихоходной тракторе на хайвей и загородил несколько полос собой.Мне он такой нахрен не нужен, ошибку по таймауту ему в зубы, чтоб дорогу не загораживал.Ну так ты и на тех, кто в секунду 1000 мелких запросов выполняет, тоже запрет захочешь ставить... Как по мне, "бороться" со слишком слабыми фильтрами\слишком большими резалтсетами должен не сервер, а прикладной разработчик. Возможно с помощью волшебного админского пенделя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladСимонов Дениссейчас в мониторинге можно узнать время начала транзакции и её состояние. А вот время с которого она начала простаивать нельзя. Если можно тогда как?Согласен, напрямую никак. Только косвенно, по отсутствию активных запросов в этой тр-ции. Косвенно мы узнаем лишь то что она не активна. А вот с какого времени неактивна... Это важно. Просто когда транзакция неактивна 2 секунды, то и фиг с ней, а вот если полдня, то совсем другое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:21 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТак значит хайвей надо расширять, отдельные полосы сужать.Дык рядом есть "проселок" (2 штуки), ползи сколь хошь. Тяжелая риодонли хрень методично выносится на зеркальный сервер на репликации. Легчает основному от этого весьма здорово. hvladКак по мне, "бороться" со слишком слабыми фильтрами\слишком большими резалтсетами должен не сервер, а прикладной разработчик.Боремся, но заторы иногда все равно возникают, иногда. И превентивно боремся и разбором полетов. hvladВозможно с помощью волшебного админского пенделя :)Вот его-то мы сейчас и обсуждаем! разве нет? hvladНу так ты и на тех, кто в секунду 1000 мелких запросов выполняет, тоже запрет захочешь ставить...Дык это уже другой параметр, что знает, может и захочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:24 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyВот его-то мы сейчас и обсуждаем! разве нет? Нет, сейчас вы обсуждаете бомбу, которая разнесёт трактор к ЧМ вместо того, чтобы его с хайвея аккуратно изъять и на просёлок пересадить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:55 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
С кочки зрения сисадмина: кто тайм-аут выставил, тот и виноват, а разборки с тормозами приложения - прерогатива разработчика. Вне зависимости от того, что сам разработчик думает по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:14 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovего с хайвея аккуратно изъять и на просёлок пересадить.Изъять аккуратно можно только постфактум, когда пробка стала видна (например в логах трейса, в жалобах юзеров и т.п.). Да изъять именно "аккуратно", когда он уже выехал и все загородил нахрен, не уберешь или тупо ждать или взрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyДа изъять именно "аккуратно", когда он уже выехал и все загородил нахрен, не уберешь или тупо ждать или взрывать. Отсюда поподробнее, пожалуйста: что именно он загородил? Read-латчи как и локи между собой совместимы. Или этот запрос - DML?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 17:50 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladpastorМеня интересует только гарантированное время получения отклика, хотя бы для переключения на резервный источник данных. Сейчас приходится прибивать ВЕСЬ поток вместе с коннектом. А это очень грязное дело.Ну так есть же fb_cancel_operation. pastorпропущено... И куда же тогда податься бедному еврею?Для начала - в realtime OS :) fb_cancel_operation. нужно вызывать из другого потока? а туточки сразу - поставил 2 сек - выстрелил и забыл. через указанное время вернет или результат или отлуп. это как Mutex.WaitFor( msec). в управлении из другого потока есть беда - поток может таки выполнить команду, пока его приговаривают. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 18:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladИ опять же, таковое обнаружение уже сейчас можно делать самостоятельно через мониторинг. Проблема мониторинга в том что его нужно постоянно опрашивать, а опрос мониторинга операция затратная. Вот если бы можно было к мониторингу прицепить триггер, тогда да! :) С аудитом вижу основную проблему в сложности машинной обработки (текстовый вывод и отсутствие стандарта). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 23:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex TruhinС аудитом вижу основную проблему в сложности машинной обработки (текстовый вывод и отсутствие стандарта). Именно поэтому аудит делается плагином. Напиши такой, который будет его выводить в машиночитаемом формате. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 23:48 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, во первых насколько я знаю на этот плагин нет ни какой документации. Разбираться по исходникам FB как минимум не мой уровень снания C++. во вторых я не говорил что мне это необходимо, в этой теме обсуждаем что бы хотелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhinво первых насколько я знаю на этот плагин нет ни какой документации. Парней из IBSurgeon это не остановило. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:05 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhinо вторых я не говорил что мне это необходимо, в этой теме обсуждаем что бы хотелось. Хотеть что-то ненужное обычно называется "блажь". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2013, 00:07 |
|
|
start [/forum/topic.php?fid=40&startmsg=38429173&tid=1561806]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 157ms |
0 / 0 |