|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
День добрый. Имею сервер fb 3.0.4 classic, работает под linux. База весит ~30Гб. С базой работает веб приложение. Параметры транзакции выставлены следующие: read commited, record version, wait. Принцип работы такой: у приблизительно 40 пользователей с интервалом в 6 сек обновляется несколько гридов с данными. Так же в фоне работает служба, которая периодически принимает данные из вне и затем пишет/обновляет их в базе. Так вот, примерно после минут 20-30, на этапе обновление строки с данными в таблице, по которой идет интенсивный селект этих данных, происходит "лок" базы, т.е. у всех пользователей зависают запросы, ibexpert и т.д. Если зайти в htop, там видно что болтается один два процесса firebird, которые грузят на 100% по одному ядру проца. Если убить этот зависший процесс fb, база отвисает, продолжает работать в штатном режиме. При этом на 2.5.8 такой проблемы нет. Есть у кого какие мысли что это такое может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 20:15 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
может быть где-то похоже и на нашу ситуацию, которая с нового года приключилась уже три раза... только у нас супер, так что убить процесс не получится и грузится не одно ядро, а все 48 на 100%. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 21:11 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Самое интересное что сейчас на боевой базе 2.5, настройки сервера одинаковые что на 2.5 что на 3.0, проблем подобного рода не было ни разу. На 3-ке же такая беда, причем один раз ibexpert не завис, в мониторинге удалось увидеть что висит транзакция с апдейтом одной записи. Я в принципе даже предположить не могу, почему так происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 21:33 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, автосвип? давай gstat -h ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 22:31 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Автосвип выключен. Sweep interval=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 11:25 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992видно что болтается один два процесса firebird, которые грузят на 100% по одному ядру процаПриатачиться к этому процессу с gdb, приостановить выполнение, в другой консоли выполнить fb_lock_print -a и сохранить его результаты в файл, в самом gdb снять стеки всех потоков (thread apply all bt) и также сохранить в файл, эти файлы показать нам (мне). Ещё можно попробовать снапшот 3.0.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 22:39 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 17:26 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, криминала не вижу. В первом файле есть стеки всех потоков, один из них выполняет какой-то достаточно кудрявый запрос, с сортировкой и union. Я насчитал более 20 джойнов Во втором файле стек только одного, рабочего потока, он тоже выполняет подобный запрос. Похоже, что это повторный стек с того же процесса. Лок таблица показывает 279 коннектов, один из процессов (pid 14243) удерживает 3 блокировки - лок мониторинга, его ждут 8 процессов - страничный лок (стр 410262), его ждут 70 процессов - страничный лок (стр 1209260), его ждут 130 процессов Скорее всего это именно тот процесс, который остановлен в gdb - потому и не отпускает блокировки. Сказать могу только одно - проверяйте планы запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 18:12 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Да, именно процесс 14243 повесил базу. Получается, что в 3.0 локи обрабатываюся не как в 2.5, потому что подобных зависаний на 2.5 не было ни разу. Спасибо за наводку, будем разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 18:45 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, разбираться не с локами а с тем что сказал Влад hvladСказать могу только одно - проверяйте планы запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 18:50 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
никогда не ставь "голый" WAIT. да и вообще, не нужно его пихать неосознанно. зы: я у себя в компонентах доступа переделал нахрен наследство Грегори Дица и Джефа Оверкекша касаемое TIBTransaction. нашенский компонент тупо не предоставляет возможности выставить WAIT без таймаута. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 11:37 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Запросы что я выполнял написаны нормально, есть конечно куда опимизировать, но уж точно не коряво. На 3.0 super работает отлично, зависаний нет, но там другая проблема, в корявых udf, которые работали на 2.5, но на 3.0 падают в segmentation fault и валит за собой все коннекты. Отсюда я могу сделать вывод, что в тройке classic работает не так, как на 2.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 12:50 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Мимопроходящий, Я прочитал много материала по поводу wait/nowait, но так и не понял до конца, чем может грозить, если я установлю в nowait? Т.е. как работают эти режимы я понимаю, но во что может вылиться использование этого режима я до конца понять не могу, если кто-то может внятно объяснить, помогите пожалуйста разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 12:55 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
26.06.2019 12:55, demon1992 пишет: > Я прочитал много материала по поводу wait/nowait, но так и не понял до конца тогда забей и всегда используй NOWAIT. кроме работы с метаданными. зы: но и при работе с метаданными один "голый" WAIT не ставь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:01 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992Отсюда я могу сделать выводкакой угодно. Не достаточно данных, чтобы делать выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:16 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, небось забыл в UDF указать IsMultithreaded := True ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:28 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
26.06.2019 13:28, Симонов Денис пишет: > небось забыл в UDF указать IsMultithreaded := True для CS пофигу Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:30 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Мимопроходящий, так у него же на супере segmentation fault ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:31 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
26.06.2019 13:31, Симонов Денис пишет: > так у него же на супере segmentation fault я уже запутался кто у него на чём стояло... :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 13:33 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Всем спасибо за помощь :) Позже, как будет больше свободного времени, попытаюсь провести более правильный тест и предоставить больше информации. Пока же остановился на SuperServer, на нем, кроме пары кривых udf, все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 14:13 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Снова проблема, теперь уже с SuperServer. Начинает виснуть при выполнении одной хп, снял lockprint во время полного зависания бд. Можно ли понять по нему в чем проблема? https://drive.google.com/open?id=18GlVi4JhjeXuSbhMWgIaxay_dyfbI18P ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 10:07 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, откуда такая вера в то, что содержимое лок-таблицы даст ответы на все вопросы ? Тем более для SS. В данном случае есть ожидания только для одной блокировки - мониторинг. Ждут её 8 коннектов (из 321). Т.е. говорить вообще не о чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 10:18 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
результативнее сделать как первый раз - с помощью gdb снять бектрассы всех потоков, fb_lock_print бонусом ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 11:49 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Одну из причин точно нашел. В хп, которая все вешает, делает ~3.5к вставок и удалений во временную таблицу, вставляется blob у которого sub_type text. Так вот, выполняется хп довольно быстро, что-то в районе 30-60 сек, но вот коммит висит очень долго, на пустой базе без пользователей 3-4 минуты, на загруженной базе больше 10 минут. Как раз во время коммита остальные запросы начинают виснуть, как только коммит проходит, все отвисает. Убираю в хп вставку блобов, коммит отрабатывает за 2 сек. Чуть позже сделаю сравнение с fb 2.5 и сообщу о результате. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 12:48 |
|
|
start [/forum/topic.php?fid=40&fpage=22&tid=1560664]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 165ms |
0 / 0 |