|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Всем привет! Сервер Firebird 2.5, база размером 5GB, за сутки вырастает примерно на 1GB. Полезных данных, которые нужны и остаются в базе не слишком много, допустим 100MB в сутки. Рост размера базы напрямую зависит от таблицы с переменными данными. В течение дня миллионы записей в нее пишутся и из нее удаляются (INSERT/DELETE). UPDATE - нет. В конфиге: #GCPolicy = combined Т.е. получается так - на утро база 5GB, к вечеру 6GB. Если делаю так: 1) sweep, 2) бэкап, 3) ресторе получаю базу 5.1GB. Если делаю только sweep, то база продолжает расти, и к следующему вечеру ее размер 7GB. Как я себе понимаю механизм работы: 1) сборщик мусора, после не сильно большого количества (по умолчанию) транзакций, должен сам чистить мусор (размер базы не уменьшается), и новые инсерты происходят в ранее выделенное и освобожденное место базы. То что происходит в течение дня. 2) sweep - ручная чистка, после которой размер базы не уменьшается и аналогично сборщику мусора, запись начинает происходит в ранее отведенное место. Как бы база должна (образно) за первые сутки вырасти 1GB, и затем потихоньку расти, на свои 100MB в сутки. Но чистка делается, а база продолжает расти. Где ошибка, что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:44 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Imperous, не совсем понятен пункт "1) sweep" Зачем его делать, если все равно есть пункт "3) ресторе" , который в любом случае делает файл со свежей базой. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:49 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Filippov Dmitry, Согласен, написал, потом понял что глупость написал, при бека/ресторе оно не надо. По факту sweep делается каждую ночь, а бекап/ретсоре раз в неделю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:51 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Imperousсборщик мусора, после не сильно большого количества (по умолчанию) транзакций если есть активные транзакции, то не все старые версии превращаются в мусор. Если сборщик убирает мусор, то это место используется повторно. Если не убирает, версии не становятся мусором, и сборщику убирать нечего. Сборка мусора работает постоянно, это не sweep. Imperousа база продолжает расти. прямо на гиг в день, даже при ручном запуске sweep каждый день? Значит нет мусора и версии не убираются, а значит есть длинные активные транзакции. С которыми надо бороться в приложениях. http://www.ibase.ru/sweep ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:57 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Imperous сборщик мусора, после не сильно большого количества (по умолчанию) транзакций, должен сам чистить мусор (размер базы не уменьшается), и новые инсерты происходят в ранее выделенное и освобожденное место базы. То что происходит в течение дня. судя по всему у тебя CS/SC там нет фоновой сборки мусора, так что мусор от твоих DELETE никто кроме тебя не прочистит (SELECT по тем данным которые были удалены) sweep кроме продвижения OIT может ничего и не сделать, если у тебя активные транзакции удерживающие версии давай сюда gstat -h ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:59 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Симонов Денис, Database header page information: Flags 0 Checksum 12345 Generation 348725 Page size 4096 ODS version 11.2 Oldest transaction 284034 Oldest active 289718 Oldest snapshot 289718 Next transaction 346482 Bumped transaction 1 Sequence number 0 Next attachment ID 2138 Implementation ID 26 Shadow count 0 Page buffers 4096 Next header page 0 Database dialect 3 Creation date Aug 5, 2018 23:10:57 Attributes force write Variable header data: Sweep interval: 0 *END* ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:33 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
ImperousOldest snapshot 289718 Next transaction 346482 однако.... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:44 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
ImperousРост размера базы напрямую зависит от таблицы с переменными данными. В течение дня миллионы записей в нее пишутся и из нее удаляются (INSERT/DELETE). Где ошибка, что не так? Во-первых и главных - в архитектуре, которая делает процитированное. Если не можешь избавиться от желания записать в БД что-то ненужное, хотя бы сделай эту таблицу временной. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:47 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdv, кстати http://www.ibase.ru/garbage/ sweep, автоматический или ручной. Сервер просматривает абсолютно все страницы данных (таблиц) для сборки мусора. Если после сборки мусора удается "подвинуть" вперед Oldest transactionLINIK , то это делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:47 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
ну. ImperousOldest active 289718 Next transaction 346482 Creation date Aug 5, 2018 23:10:57 не меньше полусуток какая-то транзакция торчит. см. mon$transactions ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:48 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Arioch, видел, исправлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:49 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а чем это на версионнике так уж отличается от update ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:49 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdv, там вообще ни одна ссылка в статье не проставлена похоже Dimitry Sibiryakovхотя бы сделай эту таблицу временной GTT не живёт между соединениями, т.е. нельзя передать работу другому клиенту или продолжить в случае разрыва и переконнекта ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:52 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdv, http://www.ibase.ru/summary/ авторОткройте !needsweep.txt. Откройте !snapshot2.txt: ... наблюдать в файле !rollback.txt. и т.д. Ну и "Жизненный цикл транзакций LINK" в начале ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:02 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdvну. ImperousOldest active 289718 Next transaction 346482 Creation date Aug 5, 2018 23:10:57 не меньше полусуток какая-то транзакция торчит. см. mon$transactions почему ты берешь active, а не snapshot ? разве read committed без read-consistewncy (которой в 2.х нет) будет мешать собирать мусор? https://www.firebirdsql.org/pdfmanual/html/gstat-example-header.html Oldest active - the ID of the oldest active transaction, or OAT. This value shows the transaction ID (TID) of the oldest transaction that is still running. A transaction is considered active if it has not been hard committed, is not in a state of limbo and has not been rolled back. Oldest snapshot - the ID of the oldest transaction which is currently not eligible to be garbage-collected . Any transaction with this or a higher ID cannot, yet, have old record versions removed by a sweep, for example. Normally, this is the same as the OAT above. The difference between this value and the OIT, if greater than the database sweep interval - assuming that automatic sweeping is not disabled - determines if an automatic sweep takes place. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:05 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Ariochа чем это на версионнике так уж отличается от update ?Вот как понять из этой цитаты - о чём вообще шла речь ??? Что "это" ? Цитировать красную\чёрную розу, что ли ? :) Если ты про delete+insert вместо update - в первом случае не будет длинных цепочек бекверсий, если сборка мусора застряла. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:07 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Arioch, ну что ты, ей богу. все link в статье исправил. AriochОткройте !needsweep.txt. Откройте !snapshot2.txt: ... наблюдать в файле !rollback.txt. и т.д. а тут что не нравится? Это файлы в поставке ibanalyst. Там написано - откройте. В ИБА меню файл, открыть, открываешь файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:08 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdvЭто файлы в поставке ibanalyst Это упоминается в начале главы "Нормальное состояние базы данных" - и только. М.б. лучше это в самое начало статьи переместить, что текстовые файлы упоминающиеся - они отсюжда-то? потому что если читать сразу заинтересовавшую главу в середине, то этого не читал и знаешь. Ну и стиль названий файлов - то жирный шрифт, то обычный. kdvвсе link в статье исправил. не-а, только что перезагрузил. Сделай в обеих статьях поиски по LINK и по LINIK - сам увидишь ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:14 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Arioch, ты всё попутал. Во-первых read commited read consistency появился в 4.0 Во-вторых до 4.0 read committed не удерживает версии только если она read only Ну и как раз наоборот read commited в 4.0 вообще не удерживает версии, её удерживают активные статменты и не закрытые курсоры. Ну это судя по описанию. Правда убедится в этом не так легко. Нужно делать специфичное приложение, которое не стартует лишних транзакций и фетчит все записи из курсора. Но даже в этом случае промежуточные версии хорошо собираются, это я уже глянул. И даже снапшоты уровня транзакции не такие страшные ибо не держат вообще всю сборку мусора, а только не дают собрать версии требуемые данному снапшоту. Кстати достаточно сделать фетч всех записей из курсора, или обязательно закрывать его? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:16 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
hvladЕсли ты про delete+insert вместо update - в первом случае не будет длинных цепочек бекверсий, если сборка мусора застряла. ....зато во втором не надо будет перестраивать индексы (потому что RDB$DB_KEY = голова записи не двигается). Да и сами бекверсии обычно меньше размером, чем пусть одна но полноразмерная удаленная строка. В общем, мне кажется, примерно равнозначно. Но DS категорически выступил против D+I, против твоего "первого случая". Вот я и удивился, что там такого резко опасного, что я проглядел. Не в конвретной ситуации залипшего snapshot, а "у целом" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:18 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:20 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
AriochDS категорически выступилНикогда такого не было - и вот, опять (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:20 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
kdvесть еще причина роста БД http://www.ibase.ru/dbgrowth Зачем его блобами грузить, когда чётко видно что сборка мусора заблокирована... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:21 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВо-первых и главных - в архитектуре, которая делает процитированное. Если не можешь избавиться от желания записать в БД что-то ненужное, хотя бы сделай эту таблицу временной. темповая таблица здесь не годится, разные коннекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:21 |
|
Sweep / Garbage collector, мусор убран, но база растет
|
|||
---|---|---|---|
#18+
Симонов ДенисВо-вторых до 4.0 read committed не удерживает версии только если она read only ну r/o она от рождения committed, её (с точностью до блобов) вообще как бы нет. а вот почему RC вынуждены удерживать записи, которые им один чёрт не видны больше - это для меня непонятно и неожидано. Хотя это наверное тут оффтопик. Симонов Денисread commited read consistency появился в 4.0 Он там в заголовке будет какой-то отдельной, четвёртой строкой типа Oldest XXXXX ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:21 |
|
|
start [/forum/topic.php?fid=40&msg=39684717&tid=1561019]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
100ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 510ms |
0 / 0 |