powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Статус sweep на Firebird 2.5.2
14 сообщений из 14, страница 1 из 1
Статус sweep на Firebird 2.5.2
    #39683569
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Windows Server 2008 R2, Firebird 2.5.2 SuperClassic.
Имеется база данных размером 355 Гб. В пятницу 3 августа вечером был запущен ручной sweep. Два дня параллельно со sweep'ом база данных работала на чтение с довольно большим количеством пользователей. Со вчерашнего вечера работает в монопольном режиме.

Если я не ошибаюсь, в 2.5.2 про sweep пишется только начало и конец в лог. Пытаюсь оценить примерный прогресс свипа по косвенным признакам. В MON$IO_STATS нашел данные по запущенному gfix -sweep, и возник следующий вопрос.

Итак, БД - 355 Гб (точный размер - 355 359 793 152). Размер страницы - 8192 байт. То есть в базе должно быть 43 378 881 страниц. Такое же число можно увидеть в MON$PAGES в таблице MON$DATABASE.

MON$IO_STATS по gfix'у с свипом показывает MON$PAGE_READS 254 000 000 (округлил) страниц. То есть gfix -sweep прочитал намного больше страниц, чем содержится в базе данных. fb_lock_print демонстрирует большую активность. Нормально ли, что MON$PAGE_READS для процесса свипа показывает такое большое число страниц и не значит ли это, что свипер зациклился и по какой-то причине читает базу много раз подряд вхолостую?

Большое спасибо заранее.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683604
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor IvkinНормально ли, что MON$PAGE_READS для процесса свипа показывает такое большое число страницБывает
Igor Ivkinне значит ли это, что свипер зациклилсяНет
Igor Ivkinпо какой-то причине читает базу много раз подрядДа. Всё зависит от кол-ва бекверсий, длины их цепочек, кол-ва индексов и размера кеша (который весьма мал у SC)
Igor IvkinвхолостуюНет
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683611
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается, что на нашем 2.5.2 косвенными средствами не определить текущий прогресс свипа?
Просто немного беспокоюсь, потому что sweep молотит уже третьи сутки, хотя по виду fb_lock_print и по общей активности процесса сервера, идет очень активное чтение и активная запись на диск, а кроме свипа с базой сейчас никто не работает.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683630
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor IvkinПолучается, что на нашем 2.5.2 косвенными средствами не определить текущий прогресс свипа?Снимать статистику (gstat -r) и смотреть на уменьшающее кол-во версий

Есть ещё события свипа в трейсе, см http://tracker.firebirdsql.org/browse/CORE-3656
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683636
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Ivkin,

попутные замечания
2.5.2 это не очень хорошо. Желательно ознакомиться в релизнотах со списком исправленных багов, вплоть до 2.5.8.
Даже в 2.5.3 исправлено много чего нехорошего.

Учитывая размер базы, надо бороться не с длительным sweep, а с длинными транзакциями.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683681
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Ivkin, kdv

открываем RN и видим https://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/notes-253.html

авторThe scan for limbo transactions at the end of a sweep has been improved.

Помнится здесь это обсуждалось, вполне возможно ТС попал именно на это. Так что обновится надо.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683702
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисIgor Ivkin, kdv

открываем RN и видим https://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/notes-253.html

авторThe scan for limbo transactions at the end of a sweep has been improved.

Помнится здесь это обсуждалось, вполне возможно ТС попал именно на это. Так что обновится надо.

Обновиться надо обязательно, но не уверен, что мой случай связан с limbo-транзакциями. У меня нет двухфазных коммитов, и если я правильно понимаю, то соответственно и транзакций в limbo быть не должно. Хотя может, и неважно, есть они или нет, если сканирование делается в любом случае.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683708
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Ivkin,

наличие limbo транзакций не обязательно. Тут фишка в их поиске.
Вот то обсуждение http://www.sql.ru/forum/965029-1/ne-ostanavlivaetsya-fb-sluzhba-pri-starte-sweep-a-s-oit-39-mln-i-oat-ost-next-142-mln

А вот описание в трекере http://tracker.firebirdsql.org/browse/CORE-3994
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683718
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Ivkin,

одно замечание сей баг будет заметен только если у вас разрыв в несколько миллионов образовался. Если нет, то это не ваш случай. Да и со чтениями он вроде напрямую не связан.

З.Ы. В 3.0 свипу не обязательно читать всю базу
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683772
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисIgor Ivkin,

одно замечание сей баг будет заметен только если у вас разрыв в несколько миллионов образовался. Если нет, то это не ваш случай. Да и со чтениями он вроде напрямую не связан.

З.Ы. В 3.0 свипу не обязательно читать всю базу


Да, это очень похоже на мой случай. Разрыв составляет 2 000 000 транзакций, работает уже третьи сутки.
Безопасно ли в таком случае остановить gfix -sweep, который запущен из командной строки (скажем, через Ctrl+C)? Если безопасно, то наверное умнее всего будет обновиться и перезапустить sweep.
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683776
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Ivkin
Да, это очень похоже на мой случай. Разрыв составляет 2 000 000 транзакций, работает уже третьи сутки.
Безопасно ли в таком случае остановить gfix -sweep, который запущен из командной строки (скажем, через Ctrl+C)? Если безопасно, то наверное умнее всего будет обновиться и перезапустить sweep.

Уже поэкспериментировал на небольшой локальной базе данных, через Ctrl+C gfix -sweep останавливать бессмысленно, т.к. несмотря на завершение процесса gfix, в списке коннектов он останется и продолжит работать.

Таким образом, вопрос формулируется немного иначе - можно ли каким-то образом безопасно остановить ручной gfix -sweep?
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683781
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor IvkinРазрыв составляет 2 000 000 транзакций, работает уже третьи сутки.

круто. Я думал такое только Таблоид устроить может :-) в целях тестирования
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683818
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Ivkinможно ли каким-то образом безопасно остановить ручной gfix -sweep?Попробуй через мониторинг, если не получится: gfix -shut -force 0
...
Рейтинг: 0 / 0
Статус sweep на Firebird 2.5.2
    #39683962
Igor Ivkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем уважаемым форумчанам за советы и помощь.
В общем, я решил дождаться, пока свип домолотит, и вот он закончил работу, через 3.5 суток. Обновляюсь до 2.5.8.
Еще раз спасибо.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Статус sweep на Firebird 2.5.2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]