Страница 1 из 1

БД биллинга, как сделать sweep?!

Добавлено: 21 дек 2008, 20:16
Ork Yason
фб 1.5
интел 3ггц хипертрейдинг

на нем живет БД... по размерам не сильно большая 1гб плюс/минус, но уж очень часто к ней обращатся...
"Ваша база данных работает 23 дней, и среднее число транзакций в день - 2 672 311."

как следствие постоянно не актуальные индексы, есть таблицы с массовым изменением данных

в принципе сервак справляется адекватно, но есть эпизодические пики, мне кажется причина в сборке мусора, которая стартует раз в 30тыщ транзакций...

поставить в ручную - нельзя, биллинг не отпускает базу, т.е. даже ночью при запуске свипа - отсылает с оглядкой на дедлок...

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 11:44
WildSery
Кто кого не отпускает, и зачем должен отпускать? Где дедлок?

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 11:49
Ork Yason
/opt/firebird/bin/gfix /var/db/x.gdb -sweep -USER SYSDBA -PAS хххххххххххххх
Fatal lock manager error: invalid lock id (22800), errno: 2

ручную чистку нельзя запустить
биллинг круглосуточный

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 12:04
kdv
среднее число транзакций в день - 2 672 311."
с трудом верится.
как следствие постоянно не актуальные индексы, есть таблицы с массовым изменением данных
и при чем тут свип? см. хелп к IBAnalyst.
мне кажется причина в сборке мусора, которая стартует раз в 30тыщ транзакций...
так кажется, или в IBAnalyst виден накапливающися мусор? статистику смотрели один раз, или регулярно
в течение дня? Опять же, см. хелп в IBAnalyst о том, как и когда собирать статистику.
даже ночью при запуске свипа - отсылает с оглядкой на дедлок...
мда...

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 12:09
kdv
биллинг круглосуточный
а что вы тогда будете делать через 2 года? если намек не понят, можно читать тут
http://www.sql.ru/forum/actualthread.as ... =1#6492023
и сообщение выше.

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 13:41
Ork Yason
kdv писал(а):с трудом верится.
эт ИБАналист сказал
и при чем тут свип? см. хелп к IBAnalyst.
рекомендации, предлогают делать свип по-чаще, или же в ручную, если 88раз в день - эт мешает работе
так кажется, или в IBAnalyst виден накапливающися мусор? статистику смотрели один раз, или регулярно
в течение дня? Опять же, см. хелп в IBAnalyst о том, как и когда собирать статистику.
уже второй год слежу за базой

если выключить свип вообще, то за две недели уровень загрузки проца выростет с 5% до 50% и более процентов
делаю бекап/ресторе - опять 5%

щас стоит автоматический свип через каждые 30тыщ, рост проца до 50% выростает где-то к середине второго месяца...

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 14:18
kdv
а биллинг чей? если чужой, то дело швах...
если свой, то надо транзакциями более тщательно управлять. если есть разрыв между next и oldest active.
в общем, пришлите пару-тройку статистик в zip на support.
если выключить свип вообще, то за две недели уровень загрузки проца выростет с 5% до 50% и более процентов
я так и не понял. версии накапливаются в БД? В IBAnalyst это же отлично видно, особенно если следить за БД.

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 14:37
Ork Yason
биллинг чужой
да и к нему самостоятельно долеланна масса скриптов, веб-морда, бухгалтерия и прочее...
т.е. действительно масса транзакций

вот ссылка, но это свещий стат, я только вчера ночью пересоздал базу, проц доходил до 50%
щас днем 3-7%, ну в час пику думаю до 15% подыметься... но со временем будет расти...

http://www.slav.net.ua/db_stat.txt

Re: БД биллинга, как сделать sweep?!

Добавлено: 22 дек 2008, 21:54
Ork Yason
глянул код модуля (для ФБ) биллинга, увидел по умолчанию вот такие настройки для транзакций:
til = IBPP::ilConcurrency;
tlr = IBPP::lrWait;

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 10:19
WildSery
Все транзакции? :shock:
Даже не знаю, куда в билинге можно такой режим присобачить, чтобы к месту подошёл...

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 12:35
Ork Yason
ато!

немного подшаманил, поменял на реад_коммитенд...

загрузка пока маленькая... ночью опять бакуп/ресторе...

но проблема с массовыми обновлениями осталась... есть таблицы с огромным количеством версий... но это транзакциями вот так не решить... только ковырять код :(

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 12:57
Dimitry Sibiryakov
Ork Yason писал(а):есть таблицы с огромным количеством версий... но это транзакциями вот так не решить... только ковырять код :(
Это ты сам так решил или подсказал кто? После заявления о "сборке мусора, которая стартует раз в 30000 транзакций" твоим суждениям в этом вопросе лучше не доверять...
Если мусор копится только в некоторых таблицах, то надо разбираться - почему. Либо транзакции не комммитятся, либо по этим таблицам нет запросов. В первом случае - действительно придётся ковыряться в исходниках, во втором можно обойтись скриптом, запускаемым по крону.
И я бы серьёзно обсудил с разработчиками возможность перехода на FB 2.1 - там сборка мусора улучшена.

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 13:05
Ork Yason
это решил ИВАналист - так написано в рекомендациях...

свип в ручном режиме не запускается, код ошибки я преводил выше...

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 13:10
Ork Yason
это отчет за 12часов работы, с полночи после бекап/ресторе, т.е. нагрузка еще не дошла и половины максимума, что будет вечером...

Отчет IBAnalyst 1.9.5.1, 23.12.2008 12:10:28
[удалено модератором]

Re: БД биллинга, как сделать sweep?!

Добавлено: 23 дек 2008, 20:22
kdv
это отчет за 12часов работы, с полночи после бекап/ресторе
мда. накой фиг здесь этот "отчет"??? Отчет ВЫЧИСЛЯЕТСЯ по статистике. Я просил прислать СТАТИСТИКУ, и не сюда, а на SUPPORT !!!