|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
собствеено сабж, фаяберд 3.0, железо норм ссд, можно как-то ускорить? при этом gbak на ту же бд зависает на записи одной таблицы и пишет по 5 часов 10к записей, размер базы 9гб ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 21:57 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani, Что показывает gstat -r -t <TABLE> dbfile ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 22:27 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Database "C:\BASES\LF\STORAGE__.FDB" Gstat execution time Mon Nov 16 22:52:12 2020 Database header page information: Flags 0 Generation 247453033 System Change Number 0 Page size 16384 ODS version 12.0 Oldest transaction 63297581 Oldest active 247384064 Oldest snapshot 247384064 Next transaction 247384066 Sequence number 0 Next attachment ID 214353 Implementation HW=AMD/Intel/x64 little-endian OS=Windows CC=MSV C Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Nov 12, 2020 1:51:42 Attributes force write Variable header data: Sweep interval: 20000 *END* Database file sequence: File C:\BASES\LF\STORAGE__.FDB is the only file I/O error during "CreateFile (open)" operation for file "C:\BASES\LF\STORAGE__.F DB" -Error while trying to open file -Процесс не может получить доступ к файлу, так как этот файл занят другим процес сом. Gstat completion time Mon Nov 16 22:52:12 2020 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 22:53 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniможно как-то ускорить? Отпинать разработчиков приложения, нанять DBA, ещё раз отпинать разработчиков. Не поможет - заменить их. Ещё раз не поможет - выкинуть Firebird, поставить MySQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:08 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, можете подсказать за что пинать ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:15 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani, теперь gstat -r -t <TABLE> localhost:dbfile ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:22 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniза что пинать За создание и накопление мусора в БД. Да, это два разных процесса. Первый безопасен без второго. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:23 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
hvlad, Database "C:\BASES\LF\STORAGE__.FDB" Gstat execution time Mon Nov 16 23:34:05 2020 Database header page information: Flags 0 Generation 247453033 System Change Number 0 Page size 16384 ODS version 12.0 Oldest transaction 63297581 Oldest active 247384064 Oldest snapshot 247384064 Next transaction 247384066 Sequence number 0 Next attachment ID 214353 Implementation HW=AMD/Intel/x64 little-endian OS=Windows CC=MSV C Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Nov 12, 2020 1:51:42 Attributes force write Variable header data: Sweep interval: 20000 *END* Database file sequence: File C:\BASES\LF\STORAGE__.FDB is the only file Unable to complete network request to host "localhost". -Failed to establish a connection. Gstat completion time Mon Nov 16 23:34:07 2020 я сервер выключил чтоб сделать gbak если что ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:39 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
я не понимаю, gbak сутки на ссд чето там гбачит, трындец какойто всего 9гб, за это время можно переписать вручную всю бд в тетрадку в клеточку... тут походу разрабов фб надо пнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:46 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani я сервер выключил tromani чтоб сделать gbak PS ключ -g gbak'у указан ? PPS RTFM gbak -se ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 00:26 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani я не понимаю , gbak сутки на ссд чето там гбачит, трындец какойто всего 9гб, за это время можно переписать вручную всю бд в тетрадку в клеточку Впрочем, главное я выделил. tromani тут походу разрабов фб надо пнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 00:27 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
hvlad, а смысл указывать -g? ни один запрос не выполняется все висит -se не указана сервер локальный ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 00:36 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniOldest transaction 63297581 Oldest active 247384064 А вот за такую хрень разработчиков приложения надо не просто пинать, а целиться по самым чувствительным местам. Они про транзакции вообще хоть что-нибудь слышали?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:19 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, везде любой запрос начинается со starttransaction и заканчивается commit/rollback ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:21 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniвезде любой запрос начинается со starttransaction и заканчивается commit/rollback Во-первых, это само по себе глупость. Во-вторых, отквоченные цифры утверждают противоположное. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:43 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, почему глупость? а чем должен заканчиваться запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:48 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniа чем должен заканчиваться запрос? Тем, что от него требует ТЗ. Я реально не верю, что у вас там в требованиях написано "коммит на каждый чих". У вас в базе проведено 250 миллионов транзакций за четыре дня. Транзакции Мастеркард обрабатываете?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:55 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Dimitry SibiryakovВо-вторых, отквоченные цифры утверждают противоположное Для того, чтобы подвинуть "вверх" номер Oldest Interesting Transaction (Oldest transaction в gstat -h). Дело в том, что единственные транзакции, которые приводят к "залипанию" Oldest на месте, это транзакции, которые завершились Rollback, и для которых сервер не смог отменить все изменения по сохраненным в памяти savepoints. То есть, пока все версии, созданные этой транзакцией не будут отменены, ее состояние нельзя перевернуть в committed. А транзакции snapshot оценивают состояния конкурирующих транзакций и возможность модификации записей именно от Oldest transaction до Next transaction. Собственно, при чтении версий, номер транзакций которых меньше Oldest transaction, сервер даже не проверяет наличие версий, потому что таковых нет и быть не может, а кроме того, все транзакции меньше Oldest обязательно находятся в состоянии committed (т. е. их версии можно читать). http://www.ibase.ru/sweep/ как раз таки об этом ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:57 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Dimitry SibiryakovУ вас в базе проведено 250 миллионов транзакций за четыре дня да там очень быстрый поток данных и сильно меняющийся во времени ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 01:59 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromaniкак раз таки об этом У вас автосвип должен был запуститься и отработать на разрыве уже в 20 тысяч транзакций, подвинув счётчик. А Вы показываете разрыв в 180 миллионов . То есть та хрень, что вы творили с базой, полностью его заблокировала. tromaniда там очень быстрый поток данных и сильно меняющийся во времени И дай угадаю: этот поток меняет одни и те же записи в одной таблице по миллиону раз в день? Если так, то пинать надо не разработчиков, а архитектора, которые выбрал для этого проекта Firebird вместо чего-нибудь In-memory. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 02:08 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да уже понятно что файберд не справился с задачами и субд заменим, все таки с сабжем чем-то поможете? вторые сутки -sweep никак не родит, а то как обычно ушли в дебри пинания архитекторов, программистов, создателя программистов и всего прочего вопрос то был можно как-то ускорить -sweep и что он таки делает вторые сутки даже перебирая 250млн мусорных записей это всего 9гб данных можно было уже по байту все перебрать ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 02:13 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani да уже понятно что файберд не справился с задачами и субд заменим, Программист не справился, или не предусмотрел таких объемов. Выбрал СУБД не соответствующую архитектуре, или простроил архитектуру не соответствующую выбранной СУБД. tromani все таки с сабжем чем-то поможете? вторые сутки -sweep никак не родит можно как-то ускорить -sweep и что он таки делает вторые сутки даже перебирая 250млн мусорных записей это всего 9гб данных можно было уже по байту все перебрать Я бы попробовал следующее: 1. Отключить автосвип, он все равно не успевает справляться. 2. Отключить все коннекты. 3. Сделать бэкап с ключом -g (без сборки мусора) 4. Рестор Получаем базу без мусора. Далее, что бы мусор не накапливался, нужно отрубать хвосты транзакциям которые держат мусор. Можно поискать конкретного - по номеру транзакции oldest через таблицы мониторинга смотрим из какого коннекта она выполнена, может быть даже запрос в этой транзакции посмотреть, и отключить этого клиента. Можно добровольно, а можно и принудительно. Удерживаемые этим клиентом этой транзакцией потеряют актуальность и их можно будет собрать, как мусор. После чего смотрим разрыв между oldest и next - если большой, то опять ищем кто держит oldest и перезапускаем эту программу. Либо просто сделать регламент - каждый час все программы работающие с базой перезапускаются. tromani и что он таки делает вторые сутки даже перебирая 250млн мусорных записей это всего 9гб данных Неверно. 250 миллионов не записей а транзакций, каждая из которых может держать кучу версий записей для себя. Самих версий записей может быть намного больше чем 250млн и намного больше чем собственно записей в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 04:06 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani а смысл указывать -g? ни один запрос не выполняется все висит -g отключает кооперативную сборку мусора, если не ошибаюсь в термине. Смысл такой. Читающая транзакция (в данном случае она из gbak) ищет те версии записей которые ей можно видеть. Обнаружив еще какие-то иные - проверяет, есть ли кто-то заинтересованный в этих версиях. Если интересантов нет - удаляет такие версии. Так вот, ключ -g этот механизм отключает - нашлась версия которая нужна - берем, остальное просто пропускаем, ничего больше не читаем, чисткой мусора не занимаемся. Это ускорит бэкап замусоренной базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 04:13 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
fraks, плюсану по пунктам. Автор - сделайте срочно gfix database -h 0 хотя бы. При таком разрыве OST-OT у вас авто-sweep может долбить базу целый день. Там еще видимо Oldest active торчало, иначе авто-свип бы смог хоть какой-то "мусор" собрать. А разработчиков БД надо пнуть, да, пусть хоть что-то по транзакциям на ibase.ru почитают. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 07:59 |
|
gfix sweep висит по 10 часов
|
|||
---|---|---|---|
#18+
tromani Dimitry Sibiryakov, везде любой запрос начинается со starttransaction и заканчивается commit/rollback Выполните запрос на рабочей базе и посмотрите как и все ли транзакции у вас заканчиваются. Запрос написан для Fibrebird-2.5 не гарантирую что на тройке будет работать. Транзакция у которой MON$TRANSACTION_ID = OLDEST TRANSACTION - и есть та самая которая не дает собирать мусор. Код: plsql 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.
Вот так можно посмотреть какие запросы были выполнены в этой транзакции Код: plsql 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.
А вот так глянуть на сам текст запроса Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
По результатам можно будет потыкать программистов носом в конкретное место программы, где они херово работают с транзакцией (не закрывают например). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 09:55 |
|
|
start [/forum/topic.php?fid=40&fpage=10&tid=1560184]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 217ms |
0 / 0 |