|
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 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
PS: перед gfix -sweep, который выполнили, когда тормоза закончились, перезапустил сервис FB ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 18:55 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenнепонятно, как простейшие запросы "select s.name, s.svalue from serv_settings s" могут завершится с ошибкой deadlock. Легко если какой-то чудак запускает их в транзакции с флагами READ COMMITTED NO RECORD VERSION, что, к сожалению, является умолчанием в некоторых драйверах доступа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 19:07 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Сейчас посмотрел код. Для ODBC, через который происходит работа с FB, стоит: Код: plaintext 1. 2.
Но у меня сейчас начинают закрадываться сомнения, что Odbc-драйвер в действительности ставит уровень Serializable... Ну и на самом деле мне бы хватило за глаза Repeatable read )) Сейчас уже не вспомню зачем он мне понадобился ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 19:30 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Если верить исходнику ODBC-драйвера, то для SQL_TXN_SERIALIZABLE он выставляет isc_tpb_consistency перед запуском транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 19:34 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Это могло вызывать вышеуказанные у меня (не у nimarufa) эффекты? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 19:36 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenон выставляет isc_tpb_consistency Это слишком сурово. О конкретных последствиях я даже и не скажу, тут Влад нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 19:48 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Всё, вспомнил почему там стоит SQL_TXN_SERIALIZABLE. Он был оставлен так около 10-ти лет назад т.к. когда всё это писалось, выяснилось, что ODBC-драйвер для любой константы устанавливал уровень Read Commited. Я тогда не стал заводить Issue, т.к. нашёл уже заведённый, а потом вся эта фигня была успешно забыта ))) Сейчас проверил, MON$ISOLATION_MODE показывает 2 (2 - read committed record version из https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref-appx05-transacs.html), т.е. баг так и остался. Так что реальный уровень транзакций - read committed record version. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 20:35 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Наверное нафик надо выбросить использование ODBC для FB. Тем более что для других СУБД, с которыми работает система, написаны коннекторы через родное API. Но это так уже к слову пришлось. И в данной теме это оффтопик )) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 20:41 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, онлайн валидацией не балуетесь ? Какая архитектура сервера ? Как часто это повторяется ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 20:48 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
1) нет (а надо?) 2) супер 3) deadlock при select конкретно в этом ПО вижу за всё время в первый раз. Правда, один раз было в другом ПО (которое писал для другого работодателя) что при пересчёте статистики индекса выскочил deadlock, который затем вылазил при любом запросе на всех клиентах. Вылечилось перезапуском FB. Писал об этом тут: https://www.sql.ru/forum/1251138/ Но сегодня deadlock выскакивал не на всех запросах. Часть просто дико тормозило. Встроенный в ПО профайлер выдавал в лог, что длительность выполнения запросов и последующего коммита, могло достигать часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 21:07 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Позвонили, что эта фигня опять началась. Еду в организацию что там в первую очередь посмотреть с базой? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 09:20 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, трейс запусти, включи там всё, особенно log_errors, log_sweep, дай ему минут 10 поработать хотя бы. И лог сохрани. Снимок таблиц мониторинга тоже не помешает. fb_lock_print -a ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 10:18 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDengfix -list я не понял, вы двухфазным коммитом пользуетесь? Иначе зачем эти бессмысленные телодвижения? снимать надо было fb_lock_print, а не gfix -list почем зря два раза тыкать. Кроме того, deadlock в логе ФБ и deadlock в логе какого-то там ODBC это абсолютно разные вещи. deadlock в firebird.log относится к блокировкам страниц, а не записей. Встречный вопрос - у вас там DDL случайно на ходу не выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 11:17 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
hvlad, В этот раз я просто проверил скорость диска (т.к. жалобы были именно на дикие тормоза). Так вот, скорость последовательного чтения - менее 3 Мб/сек (до проверки скорости случайного доступа дело даже не дошло). При этом диск не загружен ничем другим. Сисадмин пока не может разобраться в чём именно дело. Так что ему сейчас особо не до запуска трейса. Он что-то там копает в настройках виртуализации. Кстати, возможно вчера и на прошлой недели тоже были резкие проседания в скорости диска. Это как-то могло вызвать проблему? kdv, gfix -list в скрипте сборки мусора вызываться до и после sweep, чтобы видать насколько хорошо этот sweep отработал. PS: в прошлый раз я поехал туда не подготовленным, т.к. мне вообще не сказали в чём проблема. Наша система большая. База данных - это только небольшая часть системы. Не думал вообще, что ей придётся заниматься. Так что пришлось довольствоваться теми готовыми bat-скриптами для сисадмина, которые были в наличии. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:27 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
насчёт DDL не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:30 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
И всё-таки повторю вопрос. В каких случаях возможен ответ сервера "deadlock" при простейших select-запросах? Можно что у нас надо подкрутить? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:33 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenТак вот, скорость последовательного чтения - менее 3 Мб/сек (до проверки скорости случайного доступа дело даже не дошло). ... Кстати, возможно вчера и на прошлой недели тоже были резкие проседания в скорости диска. Это как-то могло вызвать проблему?Проблему с тормозами запросов - конечно могло. deadlock при выполнении свипа - прямой связи не вижу, это вообще весьма странно выглядит. ArtDengfix -list в скрипте сборки мусора вызываться до и после sweep, чтобы видать насколько хорошо этот sweep отработал.А какая связь ? Или таки есть 2PC тр-ции ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:38 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
18.12.2018 12:27, ArtDen пишет: > ему сейчас особо не до запуска трейса. Он что-то там копает в настройках виртуализации. доморощенных виртуальщиков мочить топить в сортире! превентивно! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:38 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
hvlad, Ступил. Конкретно gfix -list подсмотрел в какой-то рекомендации, уведенной в инете )))) Я так понимаю, оно особо там не нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:45 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, оно не мешает, просто вызывает удивление ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:51 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenВ этот раз я просто проверил скорость диска (т.к. жалобы были именно на дикие тормоза). Так вот, скорость последовательного чтения - менее 3 Мб/сек (до проверки скорости случайного доступа дело даже не дошло). При этом диск не загружен ничем другим. Сисадмин пока не может разобраться в чём именно дело. Так что ему сейчас особо не до запуска трейса. Он что-то там копает в настройках виртуализации. Огласили бы характеристики сервера. Что означает "виртуализация" в данном случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 13:07 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
DmSer, К сожалению, нормально поладить с сиадмином не получается. Всё что удалось выяснить, я выкладываю тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 13:49 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
18.12.2018 13:49, ArtDen пишет: > К сожалению, нормально поладить с сиадмином не получается > Всё что удалось выяснить, я выкладываю тут. боюсь, в этом случае всё сведётся к постулатам от сисадмина на тему того, что "ВАША программа - говно"... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 13:56 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Мимопроходящий, Он мне сегодня сказал это прямо дословно, только добавил слово "полное" перед "говно" ))) Но это уже оффтоп пошёл. В общем, в данной организации нам не повезло с сисадмином. Но проблему решить надо в любом случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 14:24 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenОн мне сегодня сказал это прямо дословно, только добавил слово "полное" перед "говно" ))) И вполне возможно, что он прав, без результатов трассировки и аудита мы этого не узнаем. Но это не отменяет факта, что именно у него диск выдаёт скорость 3 мегабайта в секунду. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 14:40 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Я готов согласиться даже на то, что наше ПО - трижды говно, лишь бы выяснить в чём проблема и справить ситуацию ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 14:47 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenЯ готов согласиться даже на то, что наше ПО - трижды говно, лишь бы выяснить в чём проблема и справить ситуацию ) Ну так начни уже с http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1306610&msg=21766644 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 14:50 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Начну конечно. Но всё зависит от настроения сисадмина. Так что это точно будет не сегодня ( ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:06 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenНо всё зависит от настроения сисадмина. У тебя что, нет удалённого доступа к серверу по SSH?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:10 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
А для чего делать sweep при отсутствии разницы между OIT и NEXT? Может сперва анализировать вывод gstat и при наличии разницы более 20000 запускать sweep? Сборка мусора итак должна выполняться, безо всякого sweep (используется же SuperServer)... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:13 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Доступа нет и не будет. Что-либо делать с сервером можно только при личном контакте с сисадмином. Логи смотрю сбоку на экране )))) Не по телефону, ни по почте он не реагирует. Вот такая жопа. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:19 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenВот такая жопа. Это единственный пользователь твоей программы? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:23 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Наверное, просто для остальных пользователей все ошибка одинаковы: "Красный крест и что-то написано" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 15:44 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenЧто-либо делать с сервером можно только при личном контакте с сисадмином. Логи смотрю сбоку на экране )))) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
P.S. "NO_SERVER_SHUTDOWN_SUPPORT" - классик или суперклассик. "MULTI_CLIENT_SUPPORT" - суперсервер. Из ограничений: На FB1.5 сервисные запросы (кроме информационных) работают только в режиме SuperServer. Classic запускает реальные приложения (gbak/gfix/итд). Приложения "отправить firebird.log" - не существует. На FB2.1 и FB2.5 сервисные запросы (кроме информационных) могут давать ошибку, если используется "чужая" версия fbsvcmgr. Функционал "родных" fbsvcmgr на этих версиях ограничен. "gbak -se" и "fbsvcmgr action_backup/_restore" отличаются "на опции перенаправлений": gbak передаёт имя файла протокола и с ним работает сервер, fbsvcmgr читает вывод, который ему отправляет сервер. В результате, fbsvcmgr не позволяет включать протоколирование, когда используются stdin/stdout для файла бэкапа. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 17:09 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, делается достаточно просто. на их системе замеряете время выполнения какого-нибудь запроса, идеально в монопольном режиме. И замеряете такой же запрос у себя на десктопе. После чего вывод на лист А4, печать и подпись. Если админ не реагирует, то тогда их начальству. С админом, конечно, отношения будут испорчены, но в данном случае, видимо, всё равно, испорчены они или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 17:39 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Для трейса такой конфиг сойдёт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 18:48 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdv, Если бы была возможность как-то повлиять на сисадмина, мы бы уже повлияли )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 18:49 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenЕсли бы была возможность как-то повлиять на сисадмина, мы бы уже повлияли )) Если это не твой единственный пользователь, то трассировку и прочие диагностические операции ты можешь начать делать уже сейчас с тем, у кого админ сговорчивее. Чисто чтобы понять "а нельзя ли и в самом деле твоё приложение улучшить". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 19:15 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Запуск трассировки и получение результата не требует доступа на консоль сервера. Эту и многие другие задачи можно выполнять никак не беспокоя админа. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 19:18 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, это лишнее ArtDen Код: plaintext 1. 2. 3. 4.
Ещё можно подумать про time_threshold и print_perf ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 19:46 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Basil A. Sidorov, В других организациях трассировка периодически запускается в случае, если есть претензии на некоторое подтормаживание. И она реально помогает (мы или перестраиваем запросы или химичим с индексами). PS: прямого доступа к базе у пользователя нету. Это трёхзвенка. К базе можно подключится только локально. Но надо подумать, что возможно дадут доступ к порту 3050 для некоторых пользователей снаружи, чтобы мы поменьше нагружали админа. PPS: причина тормозов вроде понятна - глюки в виртуализации, которые приводят к очень сильно просадке скорости дисков. Меня интересует deadlock, которым заканчивается выполнение некоторых запросов. hvlad, какой поставить time_threshold ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 20:04 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenпрямого доступа к базе у пользователя нету. Это трёхзвенкаНо разрабатываете её вы? Запросите доступ к серверу приложения - в какой-то мере это ваша епархия. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 20:09 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenВ других организациях трассировка периодически запускается в случае, если есть претензии на некоторое подтормаживание. И она реально помогает (мы или перестраиваем запросы или химичим с индексами). Значит у тебя должны быть достаточно много достаточно свежих трасс в которых ты можешь точно посмотреть параметры стартующих транзакций, в особенности тех, в которых стартуют запросы, обламывающиеся (у других) с дедлоком. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 20:21 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я тут приводил пример запроса, который заканчивается дэдлоком: Код: sql 1.
serv_settings - это таблица с двумя колонками, которая содержит 3 или 4 записи в виде key->value (name - это key, svalue - это типа value). Она была заполнена один раз при установке ПО. И она никогда не меняется. При подключении клиента к нашему серваку, этот запрос выполняется первым. В других организациях этот запрос выполняется так быстро, что не попадает в лог трейса, т.к. у нас стоит time_threshold 1000 (запросы, которые длятся более секунды считаются тормозящими). Так что мне нечего тебе показать )) В общем-то дэдлок у меня вообще не вяжется с select-ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 20:42 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenТак что мне нечего тебе показать )) А я и не говорил "мне показать". Я сказал "тебе посмотреть". И ещё сказал, что самое время выбрать пользователя с админом посговорчивее и снять-таки полную трассу твоего приложения чтобы было в чём покопаться на досуге. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 21:04 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, deadlock при таком запросе, если serv_settings это просто таблица, а не процедура которая что-то там вставляет или модифицирует, может быть только если уровень изолированности read_committed no_rec_version. Так что надо трейс смотреть. Вы же его сами можете посмотреть у себя, не обязательно у клиента. Или у вас клиенты сами ставят древние ODBC-драйвера, у которых no_rec_version? deadlock, который пишется в firebird.log - это другое. Это скорее всего что-то в памяти локов поломалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 22:10 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdv, Это я успел посмотреть ещё на работе. Вот: Код: 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.
Там куча отладочной выдачи, т.к. там лишние флаги для трейсов указаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 23:51 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
Это выдача трейса с моего компа при тестировании скрипта, запускающего трейс для сисадмина ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 23:52 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
DmSerА для чего делать sweep при отсутствии разницы между OIT и NEXT? Может сперва анализировать вывод gstat и при наличии разницы более 20000 запускать sweep? А зачем сакральная привязка к значению 20000? То что это значение по дефолту не означает что в этом велкий смысл. Опять, таки, это значение по дефолту для автозапуска свипа, т.е. если цифра больше этой установки - то он и сам запустится. Более интересный вопрос - если там разрыв транзакций более 20000 - может быть как раз запускать свип и не нужно, ибо толка может и не быть, а вред в виде тормозов - может быть. В моем случае, для борьбы с большими разрывами (бывало по 200-300 тысяч) помогало найти коннект из которого запущена та самая старая транзакция и закрыть его. Разрыв тут же значительно уменьшался. А после того как в приложении переделал работу с транзакциями - обычный разрыв находится в диапазоне до нескольких сотен. Не более. Автосвип у меня отключен, запускается по ночам принудительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 05:08 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
fraks, всё неправильно. - "разрывы" бывают разные. Самый больной разрыв для "неуборки мусора" - Next - OAT, т.е. наличие длинной АКТИВНОЙ транзакции. Никакой свип тут не действует, и не будет, нельзя убрать версии, которые не стали мусором. - авто-sweep по умолчанию 20000. Это разница между OIT и OST. Застревание OIT является индикатором того, что эта транзакция является самой старой, завершившейся по Rollback. То есть, ни в каких коннектах она фигурировать не может, она уже завершилась, и принудительное завершение коннекта никак не даст возможности серверу подвину OIT. - застревание OIT НЕ означает, что в базе есть мусор. Я постоянно талдычу, что миллион транзакций может ничего не обновлять (не генерировать версии), а одна транзакция может создать миллион версий. sweep этого не знает, и всё равно будет сканировать всю БД. - застревание OIT влияет не только на срабатывание авто-свипа (если он не 0), но и на объем памяти, который аллокируют транзакции snapshot. Такие транзакции копируют в свою локальную память все состояния транзакций от OIT до Next. Но, 1 миллион транзакций в TIP от OIT до Next займет 250 килобайт (четверть от количества транзакций). И, наконец, значение автосвипа в 20000 было установлено по умолчанию как минимум лет 20-25 назад. С тех пор количество транзакций в сутки существенно увеличилось. Но это не значит, что поэтому авто-свип можно увеличить в 10-100 раз. Объемы баз данных с тех пор существенно увеличились, поэтому запуск авто-свипа в произвольный момент сейчас фактически недопустим, если вы не хотите, чтобы сервер ВДРУГ посередине рабочего дня начал сканировать всю базу в 200 гиг на предмет уборки мусора. Поэтому свип надо настраивать по расписанию. Тем не менее, в ФБ 3 у страниц данных есть флаг swept, то есть, свип теперь проскакивает быстрее, что ручной, что авто. А в ФБ 4 меняется сборка мусора, позволяющая "выкусывать" мусор из цепочек версий, чего раньше не делалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 11:22 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDen, есть вопросы: - если это не ODBC, тогда почему чтение этих данных идет в read write, а не в read only? - если это таблица, которую долбят сотни коннектов, то надо проверять fb_lock_print, нет-ли там повышенного mutex wait. оптимизировать в этом запросе нечего, увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 11:26 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdv, Так это как раз ODBC. ODBC тупой и не позволяет указывать, что транзакция read-only. Точнее сказать, он вообще не позволяет вручную начать транзакцию. Выполнение любого запроса автоматом начинает транзакцию, которая продолжается до вызова SQLEndTran. Количество коннектов к базе всегда фиксировано (15-20 в зависимости от конфигурации) и не зависит от количества пользователей. К этой таблице долбятся только при первом подключении. Это не более нескольких сотен запросов в сутки. В общем, ситуация на месте такая: сисадмин не разобрался в чём проблема, но диск самопроизвольно ускорился раз в 60 )) Когда скорость диска нормальная, то не наблюдается проблем ни с тормозами, ни с deadlock-ом. Имеет смысл запускать трейс в этой ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 12:53 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
kdvвсё неправильно. ... Спасибо! Поставлю в рамочку! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 13:09 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
ArtDenсисадмин не разобрался в чём проблема, но диск самопроизвольно ускорился раз в 60Батарейка в рейде зарядилась ? :) Трейс нужно запускать, когда есть проблемы или когда проводится исследование. От наших советов в данном случае ничего не зависит. Простой deadlock, без дополнительных кодов ошибки, означает либо ошибку в программе, которая показывает статус-вектор (говорили об этом в прошлый раз), либо что-то уж совсем необычное (и неправильное) в движке. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 13:10 |
|
deadlock при свипе
|
|||
---|---|---|---|
#18+
hvlad, Кстати, да. Возможно что и в случае с ODBC я не правильно инфу об ошибке вытаскиваю и она вытаскивается не вся: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Есть тут спецы по ODBC? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 13:18 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560870]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 191ms |
0 / 0 |