|
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 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, это что-то новое. В дампе, кстати, не было ничего про коммит. Что ещё раз говорит о том, что дамп был снят не в то время. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 13:09 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, при переключении на SS не забыл настройки для страничного кеша поднять? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 13:19 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Симонов Денис, С настройками все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:01 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
hvlad, А про какой дамп идет речь? Про тот, что снимал gdb? Если да, то там совсем другое было. Могу сейчас подключится gdb к процессу во время коммита и скинуть сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:04 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
давай ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:06 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
https://drive.google.com/open?id=17PV_sFqlhVL1-4bU0IKhZjqeSBmUri7a Это с нагруженной базы, чуть позже сделаю без нагрузки. И еще, на fb 2.5 коммит проходит моментально. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:28 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992В хп, которая все вешает, делает ~3.5к вставок и удалений во временную таблицу, вставляется blob у которого sub_type text. Дай угадаю: этот clob ещё и конкатенацией собирается? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:41 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, на классике кеш маленький. На момент коммита почти все страницы уже сброшен на диск. В супере с большим кешем всё немного иначе время распределяется между работой самого запроса и коммитом. Надо мерить суммарно время работы запроса(ов) + время коммита. Результаты теста https://ib-aid.com/en/simple-insert-update-delete-test-for-firebird/ прекрасно показывают как кеш влияет на соотношения времени работы запроса и времени коммита. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:43 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Это без нагрузки, т.е. в базе выполняется только один коммит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:46 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Дай угадаю: этот clob ещё и конкатенацией собирается? [/quot] Ага ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:49 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, тут 197 потоков и 162 из них делают коммит. demon1992Имею сервер fb 3.0.4 classicКлассик, говоришь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:59 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
hvladdemon1992, тут 197 потоков и 162 из них делают коммит. demon1992Имею сервер fb 3.0.4 classicКлассик, говоришь ? Не, 3.0.4 ss. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:00 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992Это без нагрузки, т.е. в базе выполняется только один коммитЗдесь два файла. В первом - з потока с коммитом. Во втором - да, один. Что-то пишет на диск. Сколько ему всего писать - из бектрейса не видно, тут нужно дамп подробнее изучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:04 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
hvladСколько ему всего писать - из бектрейса не видно Много. Ему надо вычистить все 100500 временных блобов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:10 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladСколько ему всего писать - из бектрейса не видно Много. Ему надо вычистить все 100500 временных блобов.Если так, то у 2.5 должны быть те же проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:20 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Проблему решил, на ее решение навел пост выше. Заменил конкатенацию blob на list. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 17:08 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 17:57 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
kdvгм. феерично. http://www.ibase.ru/dbgrowth То что описано в статье вопрос совсем другой, у меня же проблема была совсем в другом, и решена так как я ее описал. А вот оправдано ли там использование блоба или нет, это да, я согласен с тем что использовать их без необходимости не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 19:11 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Кстати, забыл сказать, конкатенация с varchar тоже тормозила, т.е. проблема была именно в конкатенации. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 09:10 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, это если конкатенация blob || varchar Остальная вполне нормально работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 09:12 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Хотя да, вы правы, забыл у одной переменной сменить тип, каюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 10:04 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, кстати в fbdevel обсуждается возможность введения системного пакета для манипуляций с BLOB в том числе и функции добавления строк в blob. Это должно решить проблему с распуханием при конкатенации блобов со строками. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 10:13 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
А можно еще раз пояснить про блобы. Я пока был увлечен решением проблемы, у меня размер бд вырос с 20 до 70гб. Так вот, это произошло из-за конкатенаций блобов, или потому, что я менял таблицу в которую пишется блоб с временной на обычную? Насчет второго я понимаю, но я записал в обычную таблицу точно не 50гб. Получается это конкатенация столько места выжрала? Или я что-то не так понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2019, 23:01 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, временные blob которые образуются в результате конкатенации при некоторых условиях начинают сбрасываться на диск. Кстати меня интересует вопрос сборщик мусора или что-то другое что может пометить страницу как свободная когда нибудь добирается до BLOB идентификаторы которых не привязаны ни к одной таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2019, 23:20 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Симонов ДенисКстати меня интересует вопрос сборщик мусора или что-то другое что может пометить страницу как свободная когда нибудь добирается до BLOB идентификаторы которых не привязаны ни к одной таблице? насколько помню - нет, ибо блобы всегда читаются по их (хранимому где-то) ID, а не последовательно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 08:19 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
demon1992, у меня есть UDF с исходниками на C++ (GNUC) под 2.5 для сборки BLOb. В принципе, вполне рабочая, но когда я делал эту UDF, то торопился с реализацией и до стабильного её неплохо бы допилить, так как в самодельном map там наверняка есть ошибки. Если ты силён в C++ и тебе эта UDF очень нужна, могу дать как есть и ты сам её допилишь, а потом можешь даже выкатить на github. SQL скрипт для регистрации её функций выглядит так: Код: plsql 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. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 09:21 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
В некоторых функциях есть поддержка конвертации BASE64<->BLOb на лету, что можно использовать для резервного копирования BLOb в скрипт SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 09:29 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
rdb_dev, Не над, спасибо) наоборот от udf пытаюсь избавляться, намучился с ними уже. Меня беспокоит что база резко столько в размере прибавила, я сразу не заметил этого и не помню уже после чего это произошло. Рестор уже сделал, размер убавился с 70 до 22 гб. Потом еще раз попробую операции с блобами и уже буду следить за размером бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 12:17 |
|
FB 3 зависает на операциях обновления.
|
|||
---|---|---|---|
#18+
Симонов ДенисКстати меня интересует вопрос сборщик мусора или что-то другое что может пометить страницу как свободная когда нибудь добирается до BLOB идентификаторы которых не привязаны ни к одной таблице?Блобы, не привязанные к таблице - временные. Они удаляются при завершении тр-ции, в которой были созданы (или раньше, если это возможно). Сборщик мусора читает таблицы и не может видеть временные блобы. Никак. Если в результате нештатной ситуации в БД остались страницы временных блобов - только полная валидация найдёт и пометит эти страницы как свободные (если в БД не будет найдено других ошибок). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 10:51 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560664]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
119ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 248ms |
0 / 0 |