Неожиданное торможение firebird

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Неожиданное торможение firebird

Сообщение pticelov » 27 мар 2006, 01:49

Firebird 1.5.2. Временами впадает в ступор - все запрос блокируются на длительное вермя (иногда - десятки минут). Потом проходит. Перезапуск в таком состоянии не помогает - после запуска все равно будет ждать чего-то. Такое ощунение, Что запускается какая-то профилактика БД, во время котрой все блокируется.

Что это могло бы быть, как бороться и как заставитье го хоть что-то писать в лог, кро меингформации о запуске?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 мар 2006, 07:09

бери IBAnalyst, тут же на форуме. смотри.

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 27 мар 2006, 20:11

А что смотреть-то?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 мар 2006, 22:34

гм. ну там есть красненькое, жолтенькое. клавиша f1, опять же... и вроде все по русски написано...

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 30 мар 2006, 01:32

Я правильно понял, что в переводе на русский язык это звучит так: "я не знаю, что тебе посоветовать конкретно для такой ситуации, но попробуй посмотретьв ibanalyst - вдруг он что-нибудь нароет и выделит это красненьким/желтеньким"?

Смотрел. Ничего не нашел.

Karp
Сообщения: 41
Зарегистрирован: 30 апр 2005, 16:30

Сообщение Karp » 30 мар 2006, 10:18

Я правильно понял, что в переводе на русский язык это звучит так: "я не знаю, что тебе посоветовать конкретно для такой ситуации, но попробуй посмотретьв ibanalyst...
неправильно понял
Смотрел. Ничего не нашел
плохо смотрел видимо
"Sweep gap (snapshot - oldest)" чему равен?

и вообще, почитай здесь
http://www.ibase.ru/devinfo/oitoat.htm
[/url]

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 мар 2006, 10:23

на сайте есть статьи. Про версионность, сборку мусора, и т.п.
Также есть инструмент, IBAnalyst, который помогает определить проблемы с БД, сиречь с производительностью. Он дает рекомендации, и у него есть СПРАВКА.
Поскольку я являюсь автором этого инструмента, то мне пока нечего добавить к ситуации с "торможением", по которой вы НИКАКИХ данных не представили.
Отсюда и совет - взять ИНСТРУМЕНТ, и посмотреть базу ИМ. Почитывая хелп, целиком. В котором описаны разные проблемы производительности, и как их показывает IBAnalyst.
И уже потом, если что непонятно - задавать вопросы.
А раз основной вопрос - "Смотрел. Ничего не нашел.", то у меня комментариев тоже нет. Firebird сам по себе не тормозит.
Karp писал(а):и вообще, почитай здесь
эта статья устарела, читать ее не рекомендуется.

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 30 мар 2006, 14:38

Но согласитесь, чтобы предоставлять данные, надо знать, какие именно. Возник конкретный вопрос про sweep gap - стал смотреть.

Интересная история. Запускал ibanalyst дважды. Перваый раз увидел gap 1. Потом было "торможение" на 10 минут при попытке подключиться к БД flamerobin'ом (чтобы грохнуть один лишний с точки зрения ibanalyst индекс), после чего я полез в ibanalyst и уведил желтый цвет наконец-то :) gap = 3056 (3147-91).

Вопросов два.

1. почему не было gap'а раньше? Впрочем, он теоретический, оболйдусь. Может я тупил и не ту БД случайно открывал. Правда у меня их всего 2 и во второй gap=12.

2. Как я понимаю, gfix -sweep поможет смертельно больному коту. Но мне казалось, что это должно происходить автоматом, или я туплю?

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 30 мар 2006, 14:45

Насчет "должно происходить автоматически" - я уже понял сам. sweep interval=0

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 мар 2006, 15:05

я же говорю - все изложено в хелпе. Жмем F1, смотрим ветку "Как загрузить статистику..." и щелкаем в топик "Как правильно получать статистику".

Статистика - это СРЕЗ текущего состояния. Которое может быть плохим или хорошим. И т.д.

Кстати, этот же документ есть и на сайте.

"Как правильно получать статистику из баз данных InterBase и Firebird
Введение
Этот документ описывает методы и правила получения статистики из баз данных InterBase/Firebird.

В правильное время
Звучит странно, но недостаточно просто взять статистику по БД используя gstat или Services API. Статистика должна быть получена в правильный момент, чтобы показать как приложения влияют на транзакции и данные в базе данных. Худшие (почти бесполезные) моменты для получения статистики:

- Сразу после restore
- После backup (gbak –b db.gdb) без указания ключа–g
- После принудительного старта sweep (gfix –sweep)
...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 мар 2006, 15:08

насчет Sweep - опять же. я не зря говорю "Жмем F1". Такое впечатление, что большинство людей, впервые использующие IBAnalyst, назло мне и всем остальным специально не хотят читать справку.
А там есть статья
"Описание транзакций ..."
В которой подробно, по пунктам, вариантам и т.п. описывается то, что видно на первой странице IBAnalyst после получения статистики.

Объясните, пожалуйста, как мне сделать так, чтобы заставить читать хелп? Если это возможно, конечно...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 мар 2006, 15:16

и вдогонку
Но согласитесь, чтобы предоставлять данные, надо знать, какие именно.
Из вопроса можно было предположить, что проблема в автоматическом sweep. НО! у многих людей он включен, и такой проблемы нет. Значит, в системе с БД что-то такое делается, что приводит к
1. накоплению мусора
2. срабатыванию sweep

поэтому только выключение автоматического sweep - НЕ РЕШЕНИЕ проблемы.
Для того, чтобы проблему определить, надо воспользоваться IBA, снимать статистику регулярно, и уже исходя из этого делать выводы.

А по выводам - переписывать приложения, чтобы они более правильно работали :)

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 30 мар 2006, 18:42

Автоматический sweep был отключен давно, поскольку база используется только для чтения - большой справочник на несколько гигабайт со сложными запросами поисковыми. В проценссе перегонки туда данных, скорее всего, была некорректно прервана транзакция с большим объемом данных. Вот и начал расти sweep gap. Сейчас он равер 1. Посмотрим, будут ли повторяться тормоза.

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 02 апр 2006, 23:22

Продолжаем о глюке

Сегодня повторилось. Зависание минут ан 5. Во время зависания я запустил FlameRobbin, он тоже завис при обращении к БД, а потом выдал:

error connection ...
SQL message: -913 deadlock
engine code: 335544336 deadlock

sweep gap как и раньше - 1.

Что заметил - эти зависания случаются после очеь долгой неактивности БД (в данном случае - после последнего запроса прошло часов 10)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 03 апр 2006, 08:52

Только не говори что у тебя файл базы имеет расширение .gdb и сервер крутится на WinXP... :cry:

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 03 апр 2006, 11:36

gdb, winxp.

А что??? Винда зачем-то туда ходит и мне жить мешает?????

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 03 апр 2006, 12:55

FAQ. расширение gdb попадает под файлы, обрабатываемые system restore.
кстати, тут недавно случай был - машинка с XP ресетнулась, и у людей "пропали данные" за неделю или больше. Как раз за тот срок, в течение которого был постоянный коннект к БД. Хорошо, что вовремя додумались восстановить через system restore, файл БД оказался целый.

p.s. а может и какая фигня с драйвером диска. в общем, случай нехарактерный.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 03 апр 2006, 14:11

pticelov писал(а):gdb, winxp.

А что??? Винда зачем-то туда ходит и мне жить мешает?????
В морг. ](*,)

pticelov
Сообщения: 95
Зарегистрирован: 28 дек 2005, 22:52

Сообщение pticelov » 03 апр 2006, 16:40

Во-ба-на блин! :)

Отключил system restore - посмотрим на результат.

А в морг - это вообще XP или XP+GDB? :)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 03 апр 2006, 18:15

смотря для чего у тебя "XP как сервер". Отключать system restore я бы не советовал, лучше переименовать расширение БД на что-нибудь другое (ссылка на место списка расширений для SR есть в FAQ). Хотя, мне вот system restore пока еще ни разу не помогло...

Ответить