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

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

https://monosnap.com/file/JGaotfdEtcZOBPMW8DkaslhXuF88IH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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


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


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

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


И снова коммит.
Всего в таблице ~250000 записей постоянно.
...
Рейтинг: 0 / 0
20.11.2019, 18:20
    #39891937
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бесконечный sweep sweep
YuRock
Массовые - это какие?
gstat -r изучай, регулярно
...
Рейтинг: 0 / 0
20.11.2019, 18:25
    #39891940
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бесконечный sweep sweep
YuRockСразу после удаления - делается коммит, затем принудительно делается SELECT COUNT(*
это типа заклинание какое-то? Оно же не работает, если есть активные транзакции.
...
Рейтинг: 0 / 0
20.11.2019, 18:39
    #39891948
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бесконечный sweep sweep
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
20.11.2019, 18:41
    #39891950
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бесконечный sweep sweep
kdv
YuRockСразу после удаления - делается коммит, затем принудительно делается SELECT COUNT(*

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

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

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


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