|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Бывший коллега прислал лог: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Единственное, что я знаю про базу что она 45 гиг и что FB скорее всего 2.5. Что это может быть? Надеюсь, что он придёт в этот форум и расскажет больше подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 15:22 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenНадеюсь, что он придёт в этот форум и расскажет больше подробностей.Без них - никак ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 16:08 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Приветствую! firebird 2.5.7.27050 SuperServer. Предположительно началась сборка мусора, база начала тормозить у всех клиентов (зависли транзакции). Закрыли программы и перезагрузили сервер (принудительно сервис FB не останавливали) После перезапуска соединение к базе данных завершается ошибкой SQL Message: -913 deadlock в логах заускается sweeper потом Error during sweep:deadlock ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 16:40 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
сделал копию базы 1.запустил на ней gfix -v -full выдало Код: plaintext 1. 2. 3. 4.
2.запустил gfix -v -ignore не выдало ничего 3.запустил gfix -mend выдало то же самое что в первом пункте 4.опять запустил gfix -v -full опять выдало то же самое в firebird.log 3 сообщения вида Код: plaintext
Код: plaintext
Код: plaintext
Также параллельно (после копирования и запуска FB) cделал бекап основной базы с ключем -g. После бекапа по логам на основой базе опять видимо запустился sweep и закончился, потом сразу опять запустился и закончился спустя час Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Сейчас я могу подключиться к основной базе и общаться с ней. О целостности самих данных пока что-то сказать сложно. Насколько серьезны ошибки которые выдались в логе? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 22:58 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
nimarufaНасколько серьезны ошибки которые выдались в логе? Missing nodes это очень хреново, но легко лечится пересозданием индекса. Остальные безопасны, но означают, что некоторые данные потерялись в результате резкого отката транзакции, их создавшей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 23:11 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
nimarufa Код: plaintext
nimarufa Код: plaintext
nimarufa Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 01:22 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Спасибо! Во все-таки основная проблема в том что никто не мог подсоединиться к базе во время этого свипа продолжительное время посреди рабочего дня. SQL Message: -913 deadlock ArtDen подсказал сделать принудительный sweep раз в неделю ночью, это сделаю, но хотелось бы узнать из-за чего именно происходил этот злосчастный deadlock... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 07:11 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Предположу, что неконсистентность в системных таблицах какая-то. Свип почему-то хотел убрать версию, которая нужна была какой-то транзакции. Но, я понял, что рестора после mend так и не последовало, а таки свип смог закончиться после валидации и менда? Чудны дела Твои! Я б таки запланировал бэкап-рестор. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 07:23 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
o_v_a, немного не так, свип на основной базе закончился после того как я ей сделал бекап с -g и ничего не трогал, просто до этого основную базу дергали то остановкой сервиса, то перезагрузкой и свип начинался заново, другим невозможно было подключиться (именно подключится, до запросов даже дело не доходило) к базе из-за deadlock. Менд и валидацию я делал уже на скопированной базе данных. После этого на ней-же я сделал бекап-рестор и уже эту базу запустил в работу. Сейчас увеличил sweep interval до 60000 и запланирую gbak -sweep два раза в неделю ночью. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 10:03 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
nimarufaСейчас увеличил sweep interval до 60000 автосвип вам надо вообще вырубать, и стартовать его вручную ( в смысле, автоматизировать запуск в ОС на какое-то вечернее время). Свип сканирует всю базу, зачем такие случайности нужны во время работы? nimarufaSOCGEOSRV (Server) Wed Dec 12 19:30:16 2018 Sweep is finished Database "D:\RTDATACOLLECTOR\DATABASE\DATABASE.FDB" OIT 943086403, OAT 944338117, OST 944337973, Next 944338176 свип не смог подвинуть OIT. И фиг с ним. Вас это так беспокоит? См выше, что автосвип надо отключать. Потому что он начинает долбить базу: nimarufaSOCGEOSRV (Server) Wed Dec 12 19:30:16 2018 Sweep is started by SWEEPER Database "D:\RTDATACOLLECTOR\DATABASE\DATABASE.FDB" OIT 943086403, OAT 944338117, OST 944337973, Next 944338183 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 11:27 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Пр запланированном gfix -sweep интервал для запуска sweep в параметрах базы можно сделать тогда вообще =0. Чтоб не иметь непредсказуемых запусков sweep с таким критическим просадом по производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 11:31 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
особенно на супере Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 11:47 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdvсвип не смог подвинуть OIT. И фиг с ним. Вас это так беспокоит? OIT жеж подвинулся со второго раза: SOCGEOSRV (Server) Wed Dec 12 19:30:16 2018 Sweep is finished Database "D:\RTDATACOLLECTOR\DATABASE\DATABASE.FDB" OIT 943086403, OAT 944338117, OST 944337973, Next 944338176 SOCGEOSRV (Server) Wed Dec 12 19:30:16 2018 Sweep is started by SWEEPER Database "D:\RTDATACOLLECTOR\DATABASE\DATABASE.FDB" OIT 943086403, OAT 944338117, OST 944337973, Next 944338183 ..... SOCGEOSRV (Server) Wed Dec 12 20:23:27 2018 Sweep is finished Database "D:\RTDATACOLLECTOR\DATABASE\DATABASE.FDB" OIT 944337972, OAT 944572476, OST 944572408, Next 944572596 Пока он делался, в базе появилось ещё пара сотен тысяч транзакций. Видимо, есть серьёзные проблемы в ПО по работе с транзакциями. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 16:41 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
DmSer, да, не читают же ничего. а если читают, то не понимают. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 01:29 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
DmSerПока он делался, в базе появилось ещё пара сотен тысяч транзакций. Исключено, в это время к базе могли подключиться только клиенты с читающими транзакциями. Может быть, что с момента начала сааамого первого свипа (в обед или утром) уже после его старта произошла вставка большого количества записей. Тогда да. После 15:00, уже когда перезагружали сервер и свип заново несколько раз пытался запуститься никаких вставок не было. Про sweep interval 0 понял, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 13:52 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
nimarufaИсключено, в это время к базе могли подключиться только клиенты с читающими транзакциями. фантастический ответ. человек говорит про "пару сотен новых транзакций", а вы ему про "НЕТ, подключались только читающие транзакции". Какая разница? тут же простая арифметика SOCGEOSRV (Server) Wed Dec 12 19:30:16 2018 OIT 943086403, OAT 944338117, OST 944337973, Next 944338176 SOCGEOSRV (Server) Wed Dec 12 20:23:27 2018 OIT 944337972, OAT 944572476, OST 944572408, Next 944572596 944572596 - 944338176 = 234420 новых транзакции, и это за 53 минуты. 73 транзакции в секунду. Тут надо смотреть, сколько при этом пользователей работают, чтобы понять, это естественное, или роботическое. nimarufaпроизошла вставка большого количества записей. Тогда да. вставка записей не создает версий. Версии создаются только update и delete. И то, может быть миллион транзакций и 0 версий, или наоборот, 1 транзакция и миллион версий. Если у вас 234к транзакций в час, то автосвип 100% надо вырубать. И увеличивать автосвип до 60к - это бессмыслица. При упомянутом росте транзакций даже с таким свипом за час автосвип может стартануть 3-4 раза. В общем, читайте статьи на ibase.ru. если что непонятно - спрашивайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 16:15 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdvПри упомянутом росте транзакций даже с таким свипом за час автосвип может стартануть 3-4 раза. Не может. Без жёстких откатов - не может. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 17:33 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovБез жёстких откатов - не может. без них конечно не может. а кто даст гарантию? Я же привожу самый худший вариант. Хрен знает что там у автора в транзакциях делается, или коннекты отрубаются, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 22:31 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Вот блин, накаркал я поблему. У моих пользователей вылезла та же самая проблема, как и у бывшего коллеги: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Сборка мусора запускается скриптом каждую ночь в 5 часов. Предыдущая сборка мусора выглядела так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Иногда встречаются записи в логе, когда сборка идёт целый час, но это редкость: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Народ начинает активно работать с базой примерно с 9-ти часов утра. В логах ПО встречаются примерно такие записи: Код: plaintext 1. 2. 3. 4. 5.
При этом другие параллельные запросы выполняются, но очень медленно (в скобках время выполнения, в обычном режиме оно не превышает десятков миллисекунд): Код: plaintext 1.
В какую сторону копать? Как не допустить этот deadlock в будущем? PS: есть другие организации, которые работают с этим ПО по той же самой схеме. В них проблем не наблюдается. Но в них стоит более старая версия Firebird 2.5.x PPS: Firebird-2.5.8.27089_0_x64 Что ещё нужно для диагностики? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 17:53 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Тут мне ещё сказали, что проблема начала проявляться тоже 12-го числа O_o ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 17:59 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, ну и где здесь хотя что нибудь указывающее на sweep? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 18:21 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Симонов Денис, В логе firebird нету записи о том, что сборка мусора закончена. Т.е. deadlock произошёл во время сборки мусора. К тому-же непонятно, как простейшие запросы "select s.name, s.svalue from serv_settings s" могут завершится с ошибкой deadlock. Раньше, если sweep запускался автоматом, максимум, что приходилось терпеть пользователям - это тормоза. deadlock вылез впервые. Если вкратце то проблемы такие: 1. gfix -sweep, запущенный в 5 утра не завершился без видимых причин к началу рабочего дня. 2. Ближе к 9-ти часов утра простейшие select запросы в базу либо дико тормозили, либо завершались с ошибкой deadlock К 3-м часам дня глюки внезапно прекратились. Я попросил сисадмина остановить наш сервис (который и обращается к базе) и запустить скрипт, вызывающий gfix -sweep ещё раз. Он отрабатывал почти час. Вот его выхлоп: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 18:42 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Изначально проблема-то не в свипе была, а в дедлоке. Ну запустился свип, ничего страшного, он не блокирует базу, просто начинаются тормоза потому что он шерстит ее всю. В процессе этого почему-то начал вылазить дедлок, а потом уже даже при простом коннекте к базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 18:47 |
|
|
start [/forum/topic.php?fid=40&msg=39747922&tid=1560870]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 322ms |
total: | 523ms |
0 / 0 |