powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Бесконечный sweep sweep
25 сообщений из 82, страница 1 из 4
Бесконечный sweep sweep
    #39891471
smatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Есть небольшая БД 50 гигов.
Классик 2.5.9.27146
По расписанию по ночам у нее sweep. И он стал бесконечный и на производительность не влияет.
Думал сделать Б/Р.

Но для теста сделал рестор предыдущего бекапа.
На тестовой базе запустил sweep, и та же проблема sweep не заканчивается, в лог сообщений о finish не падает, таск висит, транзакция висит.

https://monosnap.com/file/JGaotfdEtcZOBPMW8DkaslhXuF88IH

чек базы с ключами -v -f делал, ошибок нет.

Что еще попробовать сделать? индексы отключить?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891472
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smatch,

скачай свежий снапшот. Эту ошибку случайно недавно внесли и вчера поправили
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891473
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891499
smatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
спасибо
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891530
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
smatch,

скачай свежий снапшот. Эту ошибку случайно недавно внесли и вчера поправили
А в тройке тоже?
У меня была похожая ситуация на 3.0.4 SS.
На базе 35гб свип шел 16 часов, после чего было решено сделать б/р. Службу, кстати, остановить не удалось, пришлось килять процесс firebird.exe.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891547
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
20.11.2019 11:56, YuRock пишет:
> пришлось килять процесс firebird.exe.

нехорошо.
во время свипа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891561
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
А в тройке тоже?
Нет
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891562
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
20.11.2019 11:56, YuRock пишет:
> пришлось килять процесс firebird.exe.

нехорошо.
во время свипа.
Никогда не хорошо
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891571
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockНа базе 35гб свип шел 16 часов, после чего было решено сделать б/р.

вот как раз после б/р такое и бывает, ибо swept флаг сбрасывается. И sweep приходится лопатить БД целиком.

Ну или если вы полбазы обновили/удалили
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891584
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисвот как раз после б/р такое и бывает, ибо swept флаг сбрасывается
не после б/р, а после "р", и не сбрасывается, а он просто выключен на новых страницах, а новые - все.
это если быть точным :-)
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891800
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
вот как раз после б/р такое и бывает, ибо swept флаг сбрасывается. И sweep приходится лопатить БД целиком.

Ну или если вы полбазы обновили/удалили

1. Мусора относительно много не было, и не бывает на этой базе. б/р сделали 1-й раз за жизнь базы. Просто ради того, чтобы восстановить работоспособность базы, т.к. устали ждать чуда.
Что я могу сказать о том, что там происходило: в этот день перезагрузили по каким-то причинам сервак. Говорят, штатно.
И вот после этого запустился свип, т.к. next-old было около 100к (почему - это другой вопрос, ко мне).

Мне непонятно это: что там можно делать 16 часов с базой 35гб???
Сложилось впечатление, что свип завис/зациклился, т.к. время уже нереальное было, вот и прервали.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891803
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Мимопроходящий
20.11.2019 11:56, YuRock пишет:
> пришлось килять процесс firebird.exe.

нехорошо.
во время свипа.
Никогда не хорошо
А что делать? Нажали "Остановить службу".
В логе отобразился обрыв коннекшенов.
Так же в логе отобразилось окончание (прерывание) свипа.
Всё, больше ничего не было в логе в течение 20 минут, пока ждали.
Все эти 20 минут firebird.exe не использовал процессор, не менялись параметры "Размер выделенной памяти", "Потоки", "Дескрипторы"... Никакие.
Как просто заснул процесс.
Вот и пришлось снимать.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891834
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
А что делать? Нажали "Остановить службу".
Сначала БД в шатдаун.
Или даже просто убить коннект свипа через мониторинг.

В логе что-то появилось (кроме inet ошибок от оборванных клиентских коннектов) ?

PS основная причина сверх-долгого свипа - множество бекверсий в таблицах с множеством индексов (оба условия)
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891837
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

сборка мусора в индексах очень тяжёлая операция, особенно после массовых удалений.
Так что вряд ли проблема с самим sweep
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891906
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
очень тяжёлая операция


а на чём именно она тяжелая?
насколько понимаю, типовая программа может уперетья в потолок по одному из трёх ресурсов

1) отожрали 100% скорости процессора, взяли бы и больше - но упёрлись в скорость процессора
2) отожрали 100% оперативной/виртуальной памяти, взяли бы и больше - но нету
3) отожрали 100% disk i/o, взяли бы и больше, но упёрлись в физические ограничения диска


YuRock
Все эти 20 минут firebird.exe не использовал процессор, не менялись параметры "Размер выделенной памяти", "Потоки", "Дескрипторы"... Никакие.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891923
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
В логе что-то появилось (кроме inet ошибок от оборванных клиентских коннектов) ?


YuRock
В логе отобразился обрыв коннекшенов.
Так же в логе отобразилось окончание (прерывание) свипа.


Больше ничего.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891930
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
сборка мусора в индексах очень тяжёлая операция, особенно после массовых удалений.

Массовые - это какие?
Раз в день удаляется по ~10000 записей из одной таблицы. В ней есть блобы.
Сразу после удаления - делается коммит, затем принудительно делается
Код: sql
1.
SELECT COUNT(*) FROM TABLE


И снова коммит.
Всего в таблице ~250000 записей постоянно.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891937
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Массовые - это какие?
gstat -r изучай, регулярно
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891940
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockСразу после удаления - делается коммит, затем принудительно делается SELECT COUNT(*
это типа заклинание какое-то? Оно же не работает, если есть активные транзакции.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891948
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
YuRock
Массовые - это какие?
gstat -r изучай, регулярно
Научи, плиз.
Вот gstat -r по таблице, где происходят удаления.
С другой базы - тестовой и маленькой, но структура та же.

Код: 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.
95.
96.
MGT$PACKETS (202)
    Primary pointer page: 1283, Index root page: 1284
    Total formats: 1, used formats: 1
    Average record length: 30.02, total records: 2601
    Average version length: 0.00, total versions: 0, max versions: 0
    Average fragment length: 0.00, total fragments: 0, max fragments: 0
    Average unpacked length: 41.00, compression ratio: 1.37
    Pointer pages: 1509, data page slots: 150560
    Data pages: 13520, average fill: 4%
    Primary pages: 1260, secondary pages: 12260, swept pages: 1070
    Empty pages: 10884, full pages: 469
    Blobs: 2605, total length: 3403486, blob pages: 399
        Level 0: 2565, Level 1: 40, Level 2: 0
    Fill distribution:
	 0 - 19% = 12925
	20 - 39% = 91
	40 - 59% = 36
	60 - 79% = 328
	80 - 99% = 140

    Index MGT$PACKETS_APPLY (2)
	Root page: 3130285, depth: 2, leaf buckets: 6, nodes: 2606
	Average node length: 5.55, total dup: 2604, max dup: 1787
	Average key length: 2.00, compression ratio: 0.50
	Average prefix length: 1.00, average data length: 0.00
	Clustering factor: 1096, ratio: 0.42
	Fill distribution:
	     0 - 19% = 1
	    20 - 39% = 0
	    40 - 59% = 2
	    60 - 79% = 1
	    80 - 99% = 2

    Index MGT$PACKETS_DOPER (1)
	Root page: 3121383, depth: 3, leaf buckets: 400, nodes: 2606
	Average node length: 9.51, total dup: 421, max dup: 18
	Average key length: 5.88, compression ratio: 1.35
	Average prefix length: 4.80, average data length: 3.13
	Clustering factor: 1278, ratio: 0.49
	Fill distribution:
	     0 - 19% = 395
	    20 - 39% = 1
	    40 - 59% = 1
	    60 - 79% = 1
	    80 - 99% = 2

    Index MGT$PACKETS_DPROCESSING (4)
	Root page: 3149531, depth: 2, leaf buckets: 6, nodes: 2606
	Average node length: 5.48, total dup: 2141, max dup: 2140
	Average key length: 1.93, compression ratio: 0.74
	Average prefix length: 0.85, average data length: 0.58
	Clustering factor: 1092, ratio: 0.42
	Fill distribution:
	     0 - 19% = 0
	    20 - 39% = 2
	    40 - 59% = 1
	    60 - 79% = 1
	    80 - 99% = 2

    Index MGT$PACKETS_TERMINAL_APPLY (3)
	Root page: 590188, depth: 2, leaf buckets: 9, nodes: 2601
	Average node length: 8.53, total dup: 0, max dup: 0
	Average key length: 4.98, compression ratio: 3.77
	Average prefix length: 16.05, average data length: 2.72
	Clustering factor: 2061, ratio: 0.79
	Fill distribution:
	     0 - 19% = 0
	    20 - 39% = 2
	    40 - 59% = 1
	    60 - 79% = 5
	    80 - 99% = 1

    Index MGT$PACKETS_TERMINAL_DOPER (6)
	Root page: 3162537, depth: 3, leaf buckets: 3977, nodes: 2606
	Average node length: 10.41, total dup: 383, max dup: 2
	Average key length: 6.83, compression ratio: 2.92
	Average prefix length: 15.91, average data length: 4.02
	Clustering factor: 1359, ratio: 0.52
	Fill distribution:
	     0 - 19% = 3966
	    20 - 39% = 8
	    40 - 59% = 0
	    60 - 79% = 2
	    80 - 99% = 1

    Index RDB$PRIMARY33 (0)
	Root page: 3108978, depth: 3, leaf buckets: 1272, nodes: 2606
	Average node length: 7.75, total dup: 0, max dup: 0
	Average key length: 4.18, compression ratio: 3.29
	Average prefix length: 11.81, average data length: 1.95
	Clustering factor: 2066, ratio: 0.79
	Fill distribution:
	     0 - 19% = 1263
	    20 - 39% = 4
	    40 - 59% = 4
	    60 - 79% = 0
	    80 - 99% = 1
Индексы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
ALTER TABLE MGT$PACKETS ADD CONSTRAINT PK_MGT$PACKETS PRIMARY KEY (TERMINAL_ID, FORTERMINAL_ID, MGT$PACKET_ID); --(это который RDB$PRIMARY33)

CREATE INDEX MGT$PACKETS_APPLY ON MGT$PACKETS (APPLY);
CREATE INDEX MGT$PACKETS_DOPER ON MGT$PACKETS (DOPER);
CREATE INDEX MGT$PACKETS_DPROCESSING ON MGT$PACKETS (DPROCESSING);
CREATE DESCENDING INDEX MGT$PACKETS_TERMINAL_APPLY ON MGT$PACKETS (TERMINAL_ID, FORTERMINAL_ID, APPLY, MGT$PACKET_ID);
CREATE DESCENDING INDEX MGT$PACKETS_TERMINAL_DOPER ON MGT$PACKETS (TERMINAL_ID, APPLY, DOPER);


DOPER, DPROCESSING - TIMESTAMP,
APPLY - CHAR(1),
остальные поля - INTEGER.

В боевой базе, как я говорил, постоянно 250к записей и ежедневно удаляется 10к. Это много для такой таблицы?
И вообще, что в ней особенно плохо? :)
Спасибо.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891950
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
YuRockСразу после удаления - делается коммит, затем принудительно делается SELECT COUNT(*

это типа заклинание какое-то? Оно же не работает, если есть активные транзакции.Да, заклинание, в надежде что их нет.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891961
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Да, заклинание, в надежде что их нет.
"На бога надейся ..."
Поставить "gfix -sweep" в расписание - сильно сложно?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891965
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
YuRock
Да, заклинание, в надежде что их нет.
"На бога надейся ..."
Поставить "gfix -sweep" в расписание - сильно сложно?
Не сильно. Только как это поможет, если оно будет выполняться 16 часов+??
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891971
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
если
"Предположение мать всех провалов".
Да, FB 2.5 всегда прочитает все страницы, но в чём проблема проверить на копии базы?
Я уж молчу, что запуск сборки мусора в контролируемое время предполагает, что надо бы взять за правило делать "gfix -h 0".
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891980
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
hvladgstat -r изучай, регулярно
Научи, плиз.Что научить ? Статистику снимать *регулярно* и искать в ней проблемные таблицы ?
Не маленький вроде - сам умеешь :)

YuRock
Вот gstat -r по таблице, где происходят удаления.
Я не говорил, что это та самая проблемная таблица.

YuRock
С другой базы - тестовой и маленькой
И какое отношение она имеет к реальной БД с реальными проблемами ?
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 1 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Бесконечный sweep sweep
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]