fbserver кушает 100% проца (думаю, это не сборка мусора)

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

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

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 13:25

kdv писал(а):
Сейчас виснет при коннекте - это из-за свипа?
разумеется! автосвип включен, разница между транзакциями для его срабатывания есть. Первый коннект - и опа, поехали.
Понятно, спасибо огромное.
слюшай, я может абидный вещ скажу, но за дизайном приложения, транзакций и т.п. надо же следить. А то 2-3 года все работало, т.е. разрабатывается давно, и вдруг "ой, а я не думал что автосвип надо отключить".
Не, не обидный вещ. Справедливый. Но я ж не спец по базам данных. Просто прикладник. моя задача - сделать так, чтобы всё работало. Без ошибок, быстро, постоянно и по возможности вечно.
Всё и работало, потому я в тонкости и не вникал. Просто необходимости не было. Вот появилась...
Да и как по другому было? Взял эту базу, хотя ИБ до сих пор не использовал до этого. Понравилось, что круто реализованы транзакции, на хорошем уровне процедуры. В общем, все, что нужно. А так же немаловажно, что сервер маленький, неприхотливый, и..басплатный.
Взял - и начал сразу использовать. Надо было много быстро делать. Разбираться в глубинах не было времени.

Извините, я не намекаю на то, что форум для этого и нужен, чтоб меня научили уму-разуму. Нет.Тыкнули мордой в нужное место - и спасибо.
я уже начинаю слегка злиться. Вы хоть раз свои базы IBAnalyst-ом смотрели?
Редко. Тут еще дело в том, что баз сотни, я их не в состоянии все смотреть, они далеко от меня, их поддерживают в основном другие люди...
Не злитесь на меня. Ну такой я человек :)

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 13:33

hvlad писал(а):Так ведь не ошиблись, раз оно в таких условиях нормально работало столько времени :)
Возможно ты прав :)
При чем - и работало бы, не переделай я механизм миграции, не добавь я таблицу MGT$LOGS... Работало бы до сих пор.
Читайте о тр-циях и прочем. И начинать читать нужно было в том самом 2002 году :)
Ну я почитал, есс-но. Тонкости, необходимые для разработки (моих программ). А если б я копать начал, то я до сих пор читал бы, а не работу работал...
Последний раз редактировалось YuRock 10 июн 2009, 13:45, всего редактировалось 2 раза.

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 13:43

Всем огромное спасибо за всё.
Отключу свип и сделаю принудительный B/R например, раз в месяц ночью. Если что будет не так - скажу :)

Единственный момент, который остался - MGT$LOGS. Действительно, портятся индексы. Регулярно. Может, есть мысли и по этому поводу?

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

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение Dimitry Sibiryakov » 10 июн 2009, 14:38

YuRock писал(а):Отключу свип и сделаю принудительный B/R например, раз в месяц ночью. Если что будет не так - скажу :)
Не с того конца заходишь. Лечишь симптомы. Из этого топика ты должен уяснить себе только одну мысль: в твоей базе где-то есть запредельно длинная не-RORC транзакция. Происходит она из твоего приложения или незакрытого IBExpert-а - неважно. Ты должен найти кто её держит и убить. Быстро, но болезненно. Пока ты этого не сделаешь - не будет тебе счастья.

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 15:07

Dimitry Sibiryakov писал(а):одну мысль: в твоей базе где-то есть запредельно длинная не-RORC транзакция. Происходит она из твоего приложения или незакрытого IBExpert-а - неважно. Ты должен найти кто её держит и убить. Быстро, но болезненно.
Да есть такая, и не одна. Но сейчас переделывать всё - смерти подобно :( . Вообще малореально, потом тестить месяцы... Придется сделать просто, шоп как-то работало.. (чтобы проблемы пользователям были не видны :) )

На сколько я понял, если у меня не будет висеть ни одной "долгой" транзакции, то sweep сможет запускаться регулярно в нужное время. И тогда будет счастье. Отключенный sweep и B/R раз в месяц тоже решат мою проблему. Хоть криво, но зато меньшей кровью. Понимаю, что плохо, но в данном случае для меня это оптимальный вариант.

Спасибо, что объяснили причину, почему sweep не запускался.

Осталось только желание узнать, почему постоянно портятся индексы именно на таблице MGT$LOGS. В ней не бывает апдейтов, только постоянные инсерты (из read commited) и раз в 10 мин. - чтение и удаление всех записей в снапшоте.
Может тоже можно как-то логику улучшить, чтобы индексы не портились?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение hvlad » 10 июн 2009, 15:34

YuRock писал(а):
hvlad писал(а):Читайте о тр-циях и прочем. И начинать читать нужно было в том самом 2002 году :)
Ну я почитал, есс-но. Тонкости, необходимые для разработки (моих программ). А если б я копать начал, то я до сих пор читал бы, а не работу работал...
А вот за злостное пренебрежение азами можно и канделябром.
YuRock писал(а):Единственный момент, который остался - MGT$LOGS. Действительно, портятся индексы. Регулярно. Может, есть мысли и по этому поводу?
Кто сказал, что они портятся ?

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 16:07

hvlad писал(а):А вот за злостное пренебрежение азами можно и канделябром.
Я, конечно, дико извиняюсь, но идеальное знание того, как сервер работает с базой "у себя внутри", как он следит/чистит мертвые транзакции и ненужные версии записей, какие в этом случае бывают подводные камни - не такие уж и азы.
Я - прикладник. По большому счету, моя задача - CREATE DATABASE; SELECT * FROM EMPLOYEE;
Конечно, это грубо говоря. Приходится заниматься всем.
Но если все это - азы, тогда их нужно добавить первым пунктом в разделе Quick Start после установки сервера. Как и обязать к прочтению все статьи (а они без какпли иронии очень полезны) на ibase.ru
Кто сказал, что они портятся ?
gfix сказал, что
Number of index page errors : 3

kdv сказал, что
Еще в базе есть три либо битых либо "недоиндексированных" индекса

Код: Выделить всё

   IDX_MGT$LOGS_STATUS (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
   IDX_MGT$LOGS_TABLE (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
   PK_MGT$LOGS (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
то есть ключей в индексах 14, а записей в таблице - 2965. причем видно, что одновременно в этой таблице 2951 версий, которые являются признаком удаления. Либо я в IBAnalyst неправ, либо что-то тут не то.

Как он это определил, не знаю. Возможно, с помощью своей программы FBFirstAID

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение hvlad » 10 июн 2009, 16:37

YuRock писал(а):
hvlad писал(а):А вот за злостное пренебрежение азами можно и канделябром.
Я, конечно, дико извиняюсь, но идеальное знание того, как сервер работает с базой "у себя внутри", как он следит/чистит мертвые транзакции и ненужные версии записей, какие в этом случае бывают подводные камни - не такие уж и азы.
Я - прикладник. По большому счету, моя задача - CREATE DATABASE; SELECT * FROM EMPLOYEE;
Конечно, это грубо говоря. Приходится заниматься всем.
Но если все это - азы, тогда их нужно добавить первым пунктом в разделе Quick Start после установки сервера. Как и обязать к прочтению все статьи (а они без какпли иронии очень полезны) на ibase.ru
Азы - это коммитить тр-ции, а не давать им жить по 3 недели. Internals сервера для этого не нужно знать.
Азы - это таки прочитать хоть что-то за 7 лет, а не говорить про хату с краю...
Одно дело что-то не знать и пойти прочитать, даже когда ткнули. А другое - говорить что тебе это не нужно, потому что ты только селекты пишешь.
Не зли меня, я и так злой :twisted:

:lol:
YuRock писал(а):
Кто сказал, что они портятся ?
gfix сказал, что
Number of index page errors : 3
Если это та БД, которая в твоём первом посте, то там куча orphan pages - а это признак падения\убиения сервера. В этом случае можно и больше ошибок огрести.
YuRock писал(а): kdv сказал, что
Еще в базе есть три либо битых либо "недоиндексированных" индекса

Код: Выделить всё

   IDX_MGT$LOGS_STATUS (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
   IDX_MGT$LOGS_TABLE (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
   PK_MGT$LOGS (MGT$LOGS)   Records: 2965, Keys: 14, Difference - 2951
то есть ключей в индексах 14, а записей в таблице - 2965. причем видно, что одновременно в этой таблице 2951 версий, которые являются признаком удаления. Либо я в IBAnalyst неправ, либо что-то тут не то.

Как он это определил, не знаю. Возможно, с помощью своей программы FBFirstAID
Про статистику ты тоже ничего не знаешь ? Или научить читать нужно ?
Версий может быть больше чем ключей индексов, если все версии записи не меняли ключевое поле.
После свипа в твоей БД в этой таблице 14 записей, как и ключей. Так что всё там нормально в этом плане.

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 10 июн 2009, 17:36

hvlad, я этот флейм разводить не хочу. И не я его начал. Я лишь сказал, что не делал того, что было на тот момент мне не нужно, ибо всё отлично работало и так. Всё. А сюда я не спорить пришел. За советы и разъяснения - большое спасибо.
Про статистику ты тоже ничего не знаешь ? Или научить читать нужно ?
Версий может быть больше чем ключей индексов, если все версии записи не меняли ключевое поле.
После свипа в твоей БД в этой таблице 14 записей, как и ключей. Так что всё там нормально в этом плане.
Немного перефразирую вопрос, уже задаваемый ранее.
Что делать с индексами на таблицу MGT$LOGS? В ней не бывает апдейтов, только постоянные инсерты (из read commited) и раз в 10 мин. - чтение и удаление всех записей в снапшоте.
Может тоже можно как-то логику улучшить, чтобы индексы не портились? Не обновлять же каждые пол дня статистику вручную (если дело только в ней, что не всегда в случае "падений сервера" или просто отключения света).

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение hvlad » 10 июн 2009, 18:07

YuRock писал(а):Может тоже можно как-то логику улучшить, чтобы индексы не портились?
Они не портятся.

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

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение kdv » 10 июн 2009, 21:10

Я, конечно, дико извиняюсь, но идеальное знание того, как сервер работает с базой "у себя внутри", как он следит/чистит мертвые транзакции и ненужные версии записей, какие в этом случае бывают подводные камни - не такие уж и азы.
то есть, ты хочешь сказать, что статьи на ibase.ru - для инопланетян? или для каких-то запредельно умных, с IQ 250? По транзакциям там статьи ДЛЯ ЧАЙНИКОВ. Специально чтобы было понятно практически любому начинающему.
Версионность в двух словах, статья по IBX, справка в IBAnalyst - все разжевано, только прочитать надо. Эх...

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 11 июн 2009, 14:32

kdv писал(а):то есть, ты хочешь сказать, что статьи на ibase.ru - для инопланетян? или для каких-то запредельно умных, с IQ 250? По транзакциям там статьи ДЛЯ ЧАЙНИКОВ. Специально чтобы было понятно практически любому начинающему.
Версионность в двух словах, статья по IBX, справка в IBAnalyst - все разжевано, только прочитать надо. Эх...
Да не хочу я это сказать. Где я это писал? Статьи очень хорошие и полезные. Большое Вам за них спасибо. И перед тем, как начать работать, конечно же, я почитал о транзакциях. И регулярно читаю по мере необходимости.

Но нельзя же считать, что перед тем, как начинать работать с чем-то, надо обязательно перечитать все возможные статьи об этом, которые есть в интернете. Это не обязательно делать, мне кажется. Обязательно только по мере необходимости.

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 11 июн 2009, 14:36

hvlad писал(а):Они не портятся.
Да, Вы правы. Они не портятся. Но у них уменьшается селективность до нуля. (вернее - она становится равной 0, хотя на самом деле это далеко не так)

YuRock
Сообщения: 18
Зарегистрирован: 09 июн 2009, 15:36

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение YuRock » 11 июн 2009, 14:42

Извиняюсь, если долго не отвечаю. Просто форум очень глючит/тормозит (по крайней мере, у меня). Особенно по вечерам, почему-то..

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

Re: fbserver кушает 100% проца (думаю, это не сборка мусора)

Сообщение kdv » 15 июн 2009, 17:06

hvlad писал(а):Версий может быть больше чем ключей индексов, если все версии записи не меняли ключевое поле.
чуть поправлю. ключей может быть >= записей, но <=записей+версий. А в статистике, собираемой по базе до запуска gfix, sweep и т.п. мы имеем 2965 записей и 2951 версий, и при этом 14 ключей. Отсюда и ругань в IBAnalyst 2.x на "битые индексы". На самом деле база битая, там и осиротевшие версии и осиротевшие страницы - результат выключения питания на ходу или терминирования FB. И после gfix в таблице остается 14 записей (сколько и ключей).

Ответить