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

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 21 дек 2008, 20:16

фб 1.5
интел 3ггц хипертрейдинг

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

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

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

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

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

Сообщение WildSery » 22 дек 2008, 11:44

Кто кого не отпускает, и зачем должен отпускать? Где дедлок?

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 22 дек 2008, 11:49

/opt/firebird/bin/gfix /var/db/x.gdb -sweep -USER SYSDBA -PAS хххххххххххххх
Fatal lock manager error: invalid lock id (22800), errno: 2

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

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

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

Сообщение kdv » 22 дек 2008, 12:04

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

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

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

Сообщение kdv » 22 дек 2008, 12:09

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 22 дек 2008, 13:41

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

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

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

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

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

Сообщение kdv » 22 дек 2008, 14:18

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 22 дек 2008, 14:37

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

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

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 22 дек 2008, 21:54

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

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

Сообщение WildSery » 23 дек 2008, 10:19

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 23 дек 2008, 12:35

ато!

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

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

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

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

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

Сообщение Dimitry Sibiryakov » 23 дек 2008, 12:57

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 23 дек 2008, 13:05

это решил ИВАналист - так написано в рекомендациях...

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

Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

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

Сообщение Ork Yason » 23 дек 2008, 13:10

это отчет за 12часов работы, с полночи после бекап/ресторе, т.е. нагрузка еще не дошла и половины максимума, что будет вечером...

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

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

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

Сообщение kdv » 23 дек 2008, 20:22

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

Ответить