|
|
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Ковыряюсь с одной маленькой (225 МБ) базой данных. Решил в какой-то момен времени попить кофе и запустил бекап - мусор собрать, просто работу зафиксировать. Это было час назад; файл бекапа с того времени вырос аж до 50 МБ. Все это время дисковая активность, загруженность процессора и памяти болтается в районе 1-5%. Строка запуска: gbak -v -b -user sysdba -pass masterkey localtest1 san_`date +%Y%m%d-%H%M`.fbk Бекап застрял на строчке gbak: writing data for table H_TOVAR Из этой таблицы были удалены все записи в процессе работы (около 2млн) и скорее всего сейчас по ней собирается мусор. Но не целый час же при общем объеме базы в пару сотен мегабайт же? Я где-то что-то начудил, или это так и должно быть? Firebird 2.5.2, Debian 7.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 11:43:55 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonline, еще одно подтверждение моей уверенности, что бэкап всегда надо делать как gbak -b -g. http://www.ibase.ru/devinfo/delmany.htm к сожалению, даты документа нет, но думаю, цитата Харрисон взята где-то до 2000 года. Какие-то ускорения у ФБ в ODS на эту тему вроде были, но насколько это помогло - не знаю, не сравнивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 11:51:28 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
kdv, Футыблин, аж на душе полегчало :) Думал, кстати, что весь devinfo/ прочитал, а приведенный документ вроде впервые вижу. Но, тем не менее все более-менее прояснилось, спасибо большое. P.S. Воспроизводимый тест и/или тикет в трекере нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:09:05 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonlinegbak: writing data for table H_TOVAR Из этой таблицы были удалены все записи в процессе работы (около 2млн) индексов сколько на этой таблице? miwaonlineFirebird 2.5.2 более интересна ODS базы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:09:42 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
dimitr, ODS 11.2 Индексов четыре + PK пятый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:18:48 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
Классик ? Размер кеша для этой БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 13:25:37 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvlad, Да, классик. А вот с размером кеша вышла лажа: он дефолтный, тоесть в конфиге параметр DefaultDbCachePages закоментирован. Сам не знал :( Прошу извинить за потраченное время :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 13:41:24 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonline, если есть возможность - повтори бекап БД с мусором с более вменяемым размером кеша (хотя бы 256 страниц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 13:45:01 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
kdvКакие-то ускорения у ФБ в ODS на эту тему вроде были, но насколько это помогло - не знаю, не сравнивал.Т.е. про новую структуру индексов в ODS 11 ты "вроде бы" слышал, но никогда их не трогал ? Не верю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 13:46:26 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvladmiwaonline, если есть возможность - повтори бекап БД с мусором с более вменяемым размером кеша (хотя бы 256 страниц) Будет чуть позднее - мусор уже вынесли :) Но я на той же базе данных запустил ту же самую "генерацию мусора", которая была в прошлый раз, а потом запущу на ней же бекап. По результатам отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 18:11:20 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvladпро новую структуру индексов в ODS 11 ты "вроде бы" слышал, но никогда их не трогал ? Не верю :) слышал, но по сборке мусора никогда не сравнивал. К тому же, сравнить IB и FB достаточно тяжело, из-за фоновой сборки в супере ИБ. Но мысль уже появилась, просто ради развлечения - можно. Впрочем, на 4 дня придется уехать в пампасы, ибо в офисе устроили blackout в рабочее время - какие-то ремонтные работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 20:48:25 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvladmiwaonline, если есть возможность - повтори бекап БД с мусором с более вменяемым размером кеша (хотя бы 256 страниц) "Восстановил мусор" и запустил бекап заново. На все той же таблице H_TOVAR, в которой было создано и затем сразу удалено примерно 1.1 миллиона записей, gbak "думает" уже больше получаса. Общий объем базы данных - напомню - 225 МБ. Размер кеша 512 страниц. Размер бекапа (почти) все это время 7.3 МБ. Процессор, память, диск не заняты (меньше 5% по загрузке каждого показателя). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:16:42 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonline, ты бы лучше на исходной базе показал статистику по индексам этой таблицы из gstat. Или привел rdb$indices.rdb$statistics (или как его там) после пересбора set statistics index .... А то может у тебя на одном из столбцов те самые 2млн записей имеют одно значение. А значит сервер при сборке мусора будет мучительно гонять эти страницы туда-сюда, в мелком кэше классика. Я бы еще посмотрел на количество операций I/O этого процесса. База хоть и 225 мб, а вот судя по длительности сборки мусора, там ввода-вывода могут оказаться гигабайты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:37:23 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonlineshow table h_tovar; Покажи ещё gstat -i -r -t H_TOVAR Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:38:42 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
Короче, через 2 часа срубил я процесс бекапа. Размер файла бекапа так и оставался 7.3 МБ, gbak висел на все той же строчке writing data for table H_TOVAR. Dimitry Sibiryakovmiwaonlineshow table h_tovar; Покажи ещё gstat -i -r -t H_TOVAR Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. kdvА то может у тебя на одном из столбцов те самые 2млн записей имеют одно значение. А значит сервер при сборке мусора будет мучительно гонять эти страницы туда-сюда, в мелком кэше классика. Нет, данные должны быть разные. Разве что в поле CHANGE_TIMESTAMP в случае синтетического наполнения таблицы будет только 10 разных значений из-за того, что для его наполнения используется current_timestamp, а сама таблица h_tovar наполняется как десятикраный повтор запроса insert into h_tovar ... select ... from m_tovar. kdvЯ бы еще посмотрел на количество операций I/O этого процесса. База хоть и 225 мб, а вот судя по длительности сборки мусора, там ввода-вывода могут оказаться гигабайты. Разве что позже - сейчас "для чистоты експеримента" наново набью теми же данными ту же таблицу и запущу бекап параллельно с iotop. Хотя, вот нашел в одной из консолей; запускалось в случайные моменты времени с целью посмотреть дисковую активность: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Завтра будут более упорядоченные результаты, хотя общая картина (доли, максимум единицы процентов IO) изменится вряд ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:06:17 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonlineIndex H_TOVAR_IDX3 (2) total dup: 532486, max dup: 121404 Index H_TOVAR_IDX6 (3) total dup: 555638, max dup: 106072 Убивать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:36:41 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmiwaonlineIndex H_TOVAR_IDX3 (2) total dup: 532486, max dup: 121404 Index H_TOVAR_IDX6 (3) total dup: 555638, max dup: 106072 Убивать. Касаемо IDX6 уже писал: использовал current_timestamp при перенаполнении таблицы (скопировал текст из триггера). В реальной базе такого безобразия нет, поскольку там current_timestamp все время разный. Сейчас перенаполняю базу наново уже с 'now'. А вот об idx3 пока что ничего не могу сказать: doc_id практически не повторяется в таблице-источнике, а база, с которой снимались цитируемые данные, уже убита. Прошу подождать с расстрельными статьями, пока наново не зальется очередной миллион записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:47:38 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
У тебя общий объём оставшихся данных и индексов около 10К страниц а значит было около 20К страниц (т.к. осталось полмиллиона версий, а было 1.1 млн). Т.к. мы (но не движок) точно знаем, что все эти 20К страниц нужно удалить, это означает жутко случайный прыг по ним через окошко в 512 страниц, которые многократно читаются, вытесняются, при этом пишутся на диск (а не в кеш ФС, из-за W=ON) и т.д. по кругу. Т.е. ты упираешься в скорость случайной записи, обеспечиваемой твоим диском. Те самые 220 - 523 КБ\с или 27-65 стр\сек. Что-то диск очень медленный, должно быть 100-300 страниц\сек даже для одиночного, но современного SATA диска... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:48:42 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
kdvА то может у тебя на одном из столбцов те самые 2млн записей имеют одно значение.На ОДС 11 это по барабану и никак не замедляет сборку мусора. kdvА значит сервер при сборке мусора будет мучительно гонять эти страницы туда-сюда, в мелком кэше классика.Будет конечно, но это никак не зависит от кол-ва дубликатов ключей в индексе. Даже наоборот - т.к. в ОДС 11 дубликаты упорядочены по номеру записи, то должно быть бОльшее попадание в кеш для "плохих" индексов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:53:33 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvladУ тебя общий объём оставшихся данных и индексов около 10К страниц а значит было около 20К страниц (т.к. осталось полмиллиона версий, а было 1.1 млн). Т.к. мы (но не движок) точно знаем, что все эти 20К страниц нужно удалить, это означает жутко случайный прыг по ним через окошко в 512 страниц, которые многократно читаются, вытесняются, при этом пишутся на диск (а не в кеш ФС, из-за W=ON) и т.д. по кругу. Т.е. ты упираешься в скорость случайной записи, обеспечиваемой твоим диском. Те самые 220 - 523 КБ\с или 27-65 стр\сек. Вот теперь понятно, спасибо. hvladЧто-то диск очень медленный, должно быть 100-300 страниц\сек даже для одиночного, но современного SATA диска... Да х.з. - обычный ноутбук, lenovo g780. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 00:47:24 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonline, ноутбучные винты скоростью не отличаются, как правило. Если всё ещё интересно - попробуй повторить или с кешем в 20К страниц, или с FW=OFF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 01:44:02 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
hvladЕсли всё ещё интересно - попробуй повторить или с кешем в 20К страниц, или с FW=OFF. Да, с кешем 20К страниц не успел даже во второй консоли запустить подготовленный скрипт для измерения дисковой активности :) Тогда, раз пошла такая пьянка, еще два встречных вопросса. Первый - ни у кого не завалялось ссылки на статью/обсуждение о размере кеша вообще и почему его не стОит ставить очень уж большим для классика - в частности? И второй - а в тройке дефолтный размер кеша будет все таким же микроскопическим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 11:57:11 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonline, не совсем. По умолчанию: для CS/SC - 256 для SS - 2048 Т.е. увеличат только для CS и SC Я себе для SS ставил 8K, Таблоид - 64K ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 12:13:55 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
я про тройку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 12:15:01 |
|
||
|
Очень медленная сборка мусора при бекапе
|
|||
|---|---|---|---|
|
#18+
miwaonlineпочему его не стОит ставить очень уж большим для классика Потому что сильно возрастут накладные расходы на его синхронизацию между параллельными процессами. В тройке есть shared cache, там это менее актуально (вместе с самим классиком). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 14:12:43 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=109&tid=1564150]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 359ms |

| 0 / 0 |
