powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Бесконечный sweep sweep
82 сообщений из 82, показаны все 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
Бесконечный sweep sweep
    #39891981
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Да, FB 2.5 всегда прочитает все страницы, но в чём проблема проверить на копии базы?

В штатном режиме эта операция происходит за 20 минут.
Но я так заметил, что время от времени бывают нештатные.
P.S. у меня 3.0.4. С 2.5 не работал никогда, перепрыгнул с 2.1
Basil A. Sidorov
Я уж молчу
Ну а что тут говорить, это очевидно.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891988
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Что научить ?

Это:
hvlad
искать в ней проблемные таблицы ?

:)

Как мне по статистике определить, что таблица проблемная? Реально в гугле не нашел.
Единственное, что нашел - Index depth не должна превышать 3, хотя это спорно как по мне, но у меня так и есть.

hvlad
И какое отношение она имеет к реальной БД с реальными проблемами ?
Не имеет, так не имеет.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39891992
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

база 35 гиг, и там 250к записей? Не сходится.
default Sweep interval на такой базе - это прекрасно.

Предположение, что "нет активных транзакций", работает только на однопользовательских системах и приложениях, и то не всегда.
Случаев, когда "транзакция застряла" можно привести массу:
- юзер бросил приложение на редактировании формы и ушел домой
- процесс классика завис
- Админ выполнил запрос в IBExpert, и тут же уснул
- внешнее приложение (1с, экспорт-импорт, или какое-нибудь старьё) подключилось к базе, и висит с активной транзакцией

и т.д. Постепенно начинаются тормоза. Админ думает - дай-ка я всех рубану. Транзакция "отвисает", все подключаются, и ... начинают собирать мусор! Потому что "кому-то нужные версии" вдруг стали мусором. И еще вдруг может начаться авто-свип (просто совпало). И тормоза становятся еще хуже.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892001
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockКак мне по статистике определить, что таблица проблемная? Реально в гугле не нашел.
количество записей и количество версий же.
Код: plaintext
1.
2.
3.
4.
COUNTRY (128)
    Primary pointer page: 182, Index root page: 183
    Total formats: 1, used formats: 1
    Average record length: 25.94, total records: 16
    Average version length: 0.00, total versions: 0, max versions: 0

Если у тебя нет IBAnalyst (HQbird), так получи статистику в ибэксперте, там тоже данные в виде таблички выводятся.
И смотришь, есть-ли версии, и насколько их много относительно записей.
Только статистику надо собирать несколько раз за день, и потом сравнивать - утром, до обеда, после обеда, вечером до окончания рабочего дня, и после.

И всё равно это не даст 100% гарантии отсутствия "застрявших транзакций", про которые я уже написал тут 22021192
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892009
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
база 35 гиг, и там 250к записей? Не сходится.
Это не единственная таблица. В базе еще много больших таблиц (с десяток, которые в десятки и сотни раз больше).
Но эта - единственная, в которой регулярно удаляется много записей.

Вернее, есть еще одна (с узкими записями - только числовые айдишники), но её обычное состояние - около нуля записей. Добавились, обработались и потом удалились, когда больше не нужны.
Из-за нее, конечно, тоже могут быть проблемы. Мусорных версий в ней много бывает, естественно.

kdv
Случаев, когда "транзакция застряла" можно привести массу

Это понятно. Но бывают, и я это знаю, случаи, когда везёт, и во время SELECT COUNT никого нет.
А даже если есть - на таблице в 250к записей это не долго раз в день.

kdv
default Sweep interval на такой базе - это прекрасно.

kdv
Админ думает - дай-ка я всех рубану. Транзакция "отвисает", все подключаются, и ... начинают собирать мусор! Потому что "кому-то нужные версии" вдруг стали мусором. И еще вдруг может начаться авто-свип (просто совпало). И тормоза становятся еще хуже.

Это всё понятно, я собираюсь отключить там автосвип и настроить запуск по расписанию.
Боюсь только того, что он может не успеть до утра - что тогда делать, не знаю.
А так же я хочу останавливать службу FB перед этим, чтобы гарантированно выкинуть всех, включая SYSDBA - и тоже боюсь, что не получится остановить (зависнет при остановке), как в моем примере.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892012
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Если у тебя нет IBAnalyst (HQbird), так получи статистику в ибэксперте, там тоже данные в виде таблички выводятся.
И смотришь, есть-ли версии, и насколько их много относительно записей.
Спасибо! Теперь понял значение некоторых цифр, выдаваемых gstat.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892014
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЭто всё понятно, я собираюсь отключить там автосвип и настроить запуск по расписанию.

"Уже смешно." (с)

Ты уже выяснил предварительно как часто там запускается этот самый автосвип сейчас?

YuRockБоюсь только того, что он может не успеть до утра - что тогда делать, не знаю.

"Готовить три конверта." (с)

Ты так говоришь, будто свип монополизирует базу и кроме него с ней никто не может работать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892015
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Это всё понятно, я собираюсь отключить там автосвип и настроить запуск по расписанию.
Боюсь только того, что он может не успеть до утра - что тогда делать, не знаю.
Делаете бэкап, восстанавливаете его на отдельном компе и запускаете sweep - получаете время сборки мусора в худшем случае.
Можете и на том же самом компе и даже выделив для тестовой базы мизерный страничный кэш.А так же я хочу останавливать службу FB перед этим, чтобы гарантированно выкинуть всехОх уж эти хирурги, всё бы им резать ...
... вот тебе таблетка - само отвалится
Код: plaintext
1.
2.
3.
usage: gfix [options] <database>
   -fo(rce_shutdown)    force database shutdown
   -o(nline)            database online <single / multi / normal>
   -sh(utdown)          shutdown < full  / single / multi>
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892017
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockЭто всё понятно, я собираюсь отключить там автосвип и настроить запуск по расписанию.

"Уже смешно." (с)

Ты уже выяснил предварительно как часто там запускается этот самый автосвип сейчас?Запускается регулярно, раз в несколько дней. Но бывают и затыки, как в этот раз. Но так долго он не выболняетя обычно, тормоз в пределах 30 минут - и всё. И не факт, что днем - нагрузка от времени суток почти не зависит, основные клиенты пул соединений репликатора.

Dimitry Sibiryakov
Ты так говоришь, будто свип монополизирует базу и кроме него с ней никто не может работать.

К сожалению, фактически так и есть. Диск во время свипа грузится на 100%.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892021
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Диск во время свипа грузится на 100%.
Виртуалка?
Устройста эмулируемые или синтетические?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892025
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЗапускается регулярно, раз в несколько дней.

Именно auto -sweep? Уверен? Как выяснил?

YuRockДиск во время свипа грузится на 100%.
Какой именно процесс и какие именно файлы при этом читает-пишет с помощью resmon/iotop
выяснил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892027
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Ох уж эти хирурги, всё бы им резать ...вот тебе таблетка - само отвалится
Код: plaintext
1.
usage: gfix [options] <database>
   -sh(utdown)          shutdown < full  / single / multi>

И давно gfix -shutdown научилось выгонять и запрещать доступ для SYSDBA?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892028
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТы уже выяснил предварительно как часто там запускается этот самый автосвип сейчас?
Дима, завязывай ты с этой борьбой за авто-свип :-)
ты никогда не знаешь, что некая транзакция завершится роллбэком, что есть активные транзакции или нет их, и какая в данный момент загрузка сервера.
Поэтому автосвип - это рулетка, от которой надо избавляться.
Кроме того, как и многие другие параметры, sweep interval = 20000 был придуман уж точно лет 25 назад.
А какой должен быть автосвип сейчас, и при какой интенсивности транзакций - я не берусь предсказать.

Допустим, есть база в 35 гиг, ФБ 3, и там половина страниц swept=0. Допустим, если вдруг запустить свип, и он начнет чесать эти пол-базы, со скоростью 50мб/сек, это займёт минут 6, без юзеров. Ну и нафиг мне нужны эти внезапные тормоза? А если сейчас пик дня, это уже будет не 6 минут, а 30 минут. И? Операторы заказы оформляют, товары отгружают, а тут вдруг авто-свип пришёл...

p.s. на ФБ 2.5 и базе в 250 гиг свип ночью шел 1.5 часа. Попробуй его днем запустить, при 600 активных юзерах. Он и через сутки не кончится.
p.p.s. для мелких ненагруженных баз автосвип - сколько угодно.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892029
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
YuRock
Диск во время свипа грузится на 100%.
Виртуалка?
Да, в облаке в каком-то у них база.
Basil A. Sidorov

Устройста эмулируемые или синтетические?
Я не разбираюсь в "железе", если честно.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892031
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovполучаете время сборки мусора в худшем случае.
не, это будет псевдо-идеальный случай, потому что после рестора мусора нет, и собирать там нечего, свип просто потратит время на проверку "ничего" и выставление swept_flag = 1 (вся БД будет перезаписана).
YuRockДиск во время свипа грузится на 100%.
надо проверить очередь диска. я так полагаю, там будет полный кабздец.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892032
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockЗапускается регулярно, раз в несколько дней.

Именно auto -sweep? Уверен? Как выяснил?
1. Вызов gfix -sweep не настроен;
2. sweep interval установлен в 20k;
3. Обычно next-old редко и ненадолго превышает 20k (не без затыков, повторюсь, сейчас было 100к).
4. Кол-во транзакций в день - минимум 10000.


Dimitry Sibiryakov
YuRockДиск во время свипа грузится на 100%.

Какой именно процесс и какие именно файлы при этом читает-пишет с помощью resmon/iotop
выяснил?
Конечно. Монитор ресурсов показал, что firebird.exe.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892034
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Basil A. Sidorovполучаете время сборки мусора в худшем случае.

не, это будет псевдо-идеальный случай, потому что после рестора мусора нет, и собирать там нечего, свип просто потратит время на проверку "ничего" и выставление swept_flag = 1 (вся БД будет перезаписана).
YuRockДиск во время свипа грузится на 100%.
надо проверить очередь диска. я так полагаю, там будет полный кабздец.Очередь диска при этом стабильно была равна ~1. Это не хорошо, конечно, но я видел и хуже :)
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892036
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock3. Обычно next-old редко и ненадолго превышает 20k (не без затыков, повторюсь, сейчас было
100к).

Это не может запустить автосвип.

YuRockМонитор ресурсов показал, что firebird.exe.
В отличии от Менеджера Задач, Монитор показывает данные с точностью до файла и скорости
обмена. Так какой именно файл этот процесс вводил-выводил и с какой скоростью?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892038
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Это не может запустить автосвип.

Что "это"?
Мой пост на форуме?

Dimitry Sibiryakov
Так какой именно файл этот процесс вводил-выводил и с какой скоростью?

Я таких подробностей не помню уже.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892039
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvзавязывай ты с этой борьбой за авто-свип :-)

Ты не врубаешься: я борюсь не за него, а против плясок с бубном уровня "стекло протереть,
по колёсам попинать".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892040
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

очередь 1 - это норм.
кто-нибудь измерял этот диск хотя бы crystaldiskmark-ом, или еще чем?

p.s. не норм - очередь выше 1. 1 означает, что в общем диск успевает, но как только он "успел", тут же приходит новая команда.
А что такое "загрузка диска 100%"? Это эквивалент очереди 1? и что, при очереди 3 тогда будет 300%? или 100%?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892041
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЧто "это"?

Отквоченное. "next-old".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892043
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

создай табличку с 10 полями влей в неё 1000000 записей, потом удали все записи. Собери мусор и засеки время.

А теперь снова влей в таблицу 1000000 записей, создай к ней 10 индексов. Удали все записи. Собери мусор и сравни время.

Подумай почему такая разница.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892044
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
кто-нибудь измерял этот диск хотя бы crystaldiskmark-ом, или еще чем?
Я не админ и не знаю админов этого клиента.
kdv
А что такое "загрузка диска 100%"? Это эквивалент очереди 1?

Не знаю. Монитор диаграмму показывает.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892045
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockЧто "это"?

Отквоченное. "next-old".И что же тогда может, если не это?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892046
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Basil A. Sidorov
Ох уж эти хирурги, всё бы им резать ...вот тебе таблетка - само отвалится
Код: plaintext
1.
usage: gfix [options] <database>
   -sh(utdown)          shutdown < full  / single / multi>

И давно gfix -shutdown научилось выгонять и запрещать доступ для SYSDBA?
Давно
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892047
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Как мне по статистике определить, что таблица проблемная?
Кол-во версий в разы превышает кол-во записей, длинные цепочки версий (max versions >= 10), при этом большое кол-во индексов (>= 5)
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892048
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockИ что же тогда может

OAT-OIT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892059
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockИ что же тогда может

OAT-OIT.Я это и имел ввиду.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892060
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Да, в облаке в каком-то у них база
Вот из этого места, скорее всего, ноги и растут.
Для виртуалок продают не только ядра/мегабайты, но и I(nput)O(output) P ( er ) S ( econds ).
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892087
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЯ это и имел ввиду.

Имел ввиду одно, а написал совершенно другое? Ню-ню...

Запуск свипа можно отследить только одним способом: по записи в firebird.log. Всё
остальное - гадание на кофейной гуще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892092
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockОбычно next-old редко и ненадолго превышает 20k
у Firebird автосвип срабатывает при OST>OIT на sweep interval.
Никакие Next и OAT на автосвип не влияют.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892233
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Запуск свипа можно отследить только одним способом: по записи в firebird.log
Да, так проще. Конечно, записи в логе присутствуют регулярно.
Когда я писал, что "запустился свип", естественно, это я узнал из лога.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892245
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Познавательная тема!

Dimitry Sibiryakov
YuRockИ что же тогда может

OAT-OIT.

kdv
у Firebird автосвип срабатывает при OST>OIT на sweep interval.
Никакие Next и OAT на автосвип не влияют.


В третьих местах (на ibase.ru например) я нашел инфу, что разница вычисляется между "Oldest snapshot" и "Oldest transaction(которая закончилась rollback)" (уже боюсь аббривиатуры придумывать).

Next вообще не влияет, это понятно, выше я хрень писал.

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

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

так ты нашёл проблемную таблицу? Или теперь будешь следующего зависона ждать?
Как же я ее найду, если b/r выполнили.

Ждать зависона... Дело в том, что таких баз работает десяток, уже больше 10 лет (эта база - сравнительно новая, ей как раз года полтора). Некоторые - больше в 3-5-10-20 раз. И зависоны если и случаются (из-за автосвипа), то сами проходят безболезненно.
Правда, в последние как раз полтора-два года появилось изменение в логике работы, связанное как раз с этой таблицей, о которой я уже писал - из нее начали удаляться по 10к записей в день и у нее стало постоянное (примерно) кол-во записей.

Тем не менее, этот случай - исключение (надеюсь).
И всё-таки я собираюсь перевести все такие базы на ручной запуск sweep по расписанию (думаю, так всё же правильнее).
В связи с этим у меня уже несколько вопросов, для понимания и уверенности:
1. Если при запуске sweep будут висеть активные транзакции - он просто ничего не сделает? (я, конечно же, собираюсь выгнать всех перед запуском, но просто интересно)
2. Если в процессе работы sweep будут запускаться транзакции, в т.ч. - пишущие, в т.ч. - снапшоты - как это повлияет на работу и результаты работы sweep?
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892308
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Arioch,

создай табличку с 10 полями влей в неё 1000000 записей, потом удали все записи. Собери мусор и засеки время.

А теперь снова влей в таблицу 1000000 записей, создай к ней 10 индексов. Удали все записи. Собери мусор и сравни время.

Подумай почему такая разница.


А можно ещё на звёзды ночью поглядеть и подумать.
При чём тут это?

Ты сказал, что в конкретном случае, при конкретных наблюдениях, конкретный процесс упёрся в бутылочное горлышко.

Я тебя спросил - в какое из трёх известных 22021068

Ты не ответил и начал воду лить за всё хорошее против всего плохого
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892321
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockВ третьих местах (на ibase.ru например) я нашел инфу, что разница вычисляется между "Oldest snapshot" и "Oldest transaction(которая закончилась rollback)" (уже боюсь аббривиатуры придумывать).
почему это "в третьих"? И какие тогда "первые" и "вторые"?

У Firebird автосвип срабатывает при OST - OIT >=sweep interval
У InterBase с какой-то там версии (вроде 7.1) автосвип срабатывает при OAT-OIT >=sweep interval.
OIT = Oldest Interesting Transaction = Oldest Transaction
OST = Oldest Snapshot
OAT = Oldest Active
Next = Next

gstat -h employee.fdb
Oldest transaction 668
Oldest active 669
Oldest snapshot 669
Next transaction 671

у gstat в выводе (и в хранении на header page) порядок маркеров транзакций по мере их возрастания попутан (OAT идет раньше, чем OST).

http://www.ibase.ru/summary/

p.s. ты на этом форуме уже 12 лет. За 12 лет мог бы ... почитать что-то.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockестественно, это я узнал из лога.

А ты сделал попытку узнать что именно привело к зависанию транзакции, приведшей к этому?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892347
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

а может быть ты таки проведёшь эксперимент и сам посмотришь какие ресурсы уходят?
Что за привычка такая ждать, что тебе всё разжуют и в рот положат.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892352
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЕсли при запуске sweep будут висеть активные транзакции - он просто ничего не сделает?
почему же. свип будет вычищать мусор в интервале от OIT до OST. Он его всегда вычищает только в этом интервале. Другое дело, что застрявшая активная транзакция не дает этому интервалу расти. Соответственно, свип всегда сканирует всю БД, и вычищает то, что можно.
Уже тут не раз писали, что ФБ пишет в firebird.log о начале и конце свипа, сопровождая сообщение значениями маркеров транзакций. Из которых можно понять, было что-то "застрято" на момент старта (и окончания) свипа, или нет.
YuRockЕсли в процессе работы sweep будут запускаться транзакции, в т.ч. - пишущие, в т.ч. - снапшоты
ну будут, и что? Эти транзакции могут плодить НОВЫЕ версии, которые потом (когда-нибудь) станут новым мусором. Жизнь продолжается.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892354
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvУже тут не раз писали, что ФБ пишет в firebird.log о начале и конце свипа, сопровождая
сообщение значениями маркеров транзакций. Из которых можно понять, было что-то "застрято"
на момент старта (и окончания) свипа, или нет.

Он утверждает, что эти записи видел.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892356
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock1. Если при запуске sweep будут висеть активные транзакции - он просто ничего не сделает? (я, конечно же, собираюсь выгнать всех перед запуском, но просто интересно)
2. Если в процессе работы sweep будут запускаться транзакции, в т.ч. - пишущие, в т.ч. - снапшоты - как это повлияет на работу и результаты работы sweep?

1. Это смотря насколько стара самая старая активная транзакция. Иначе какой был бы смысл в auto sweep
2. Может повлиять, но это не обозначает, что sweep ничего не сделает
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892358
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

грубо говоря, если бы работа sweep требовала отсутствия активных транзакции, то никто бы не стал делать auto sweep
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892380
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
почему это "в третьих"?

Первые два источника информации были в этой теме этого форума
kdv
И какие тогда "первые" и "вторые"?

Первое:
Dimitry Sibiryakov
OAT-OIT

Второе:
kdv
у Firebird автосвип срабатывает при OST>OIT на sweep interval.
Никакие Next и OAT на автосвип не влияют.


А по факту - это разница между OST-OT.

kdv
У Firebird автосвип срабатывает при OST - OIT >=sweep interval
У InterBase с какой-то там версии (вроде 7.1) автосвип срабатывает при OAT-OIT >=sweep interval.
OIT = Oldest Interesting Transaction = Oldest Transaction
OST = Oldest Snapshot
OAT = Oldest Active
Next = Next

Спасибо за подробную расшифровку.

kdv
p.s. ты на этом форуме уже 12 лет. За 12 лет мог бы ... почитать что-то.

Честно говоря, читал это много раз. Но из дырявой головы вылетает и путается то, с чем не сталкиваешься регулярно. Особенно, когда в разных местах написано по разному (впрочем, это мои проблемы).
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892383
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
YuRockестественно, это я узнал из лога.

А ты сделал попытку узнать что именно привело к зависанию транзакции, приведшей к этому?Я знаю прекрасно проблемы своего ПО и работаю над этим. В данном топике обсуждаются проблемы решения последствий плохой работы некачественного ПО.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892385
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
YuRockЕсли при запуске sweep будут висеть активные транзакции - он просто ничего не сделает?

почему же. свип будет вычищать мусор в интервале от OIT до OST. Он его всегда вычищает только в этом интервале. Другое дело, что застрявшая активная транзакция не дает этому интервалу расти. Соответственно, свип всегда сканирует всю БД, и вычищает то, что можно.
Уже тут не раз писали, что ФБ пишет в firebird.log о начале и конце свипа, сопровождая сообщение значениями маркеров транзакций. Из которых можно понять, было что-то "застрято" на момент старта (и окончания) свипа, или нет.
YuRockЕсли в процессе работы sweep будут запускаться транзакции, в т.ч. - пишущие, в т.ч. - снапшоты
ну будут, и что? Эти транзакции могут плодить НОВЫЕ версии, которые потом (когда-нибудь) станут новым мусором. Жизнь продолжается.
Ясно, спасибо. Короче, думаю, будет достаточно просто выгонять всех пользователей и запускать свип раз в сутки.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892389
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
грубо говоря, если бы работа sweep требовала отсутствия активных транзакции, то никто бы не стал делать auto sweep
Спасибо, я понял.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892414
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockВ данном топике обсуждаются проблемы решения последствий плохой работы некачественного ПО.

А какие у тебя были последствия кроме невнятного "свип шёл 16 часов"? Ну шёл и шёл. Он
кому-то мешал, что ты начал паниковать и убивать сервер, рискуя целой базой?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892449
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А какие у тебя были последствия кроме невнятного "свип шёл 16 часов"? Ну шёл и шёл. Он
кому-то мешал, что ты начал паниковать и убивать сервер, рискуя целой базой?
Да нет конечно. Я так, ради прикола балуюсь.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892478
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЯ так, ради прикола балуюсь.

Ну я так и подумал. Продолжай, не смею мешать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892490
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Резюмируя: длина очереди 1 намекает, что о-о-о-очень медленный диск был полностью загружен
последовательными запросами от одного-единственного потока, которым был свип. И пока этот
поток ожидал завершения чтения, все остальные потоки ничего не могли делать, поскольку
ждали своей очереди. Что странно, поскольку Влад говорил, что глобальный лок уже давно
начал отпускаться на время ввода-вывода.

Возможно, тут мог бы помочь дамп лок-таблицы в момент проблемы, но кто ж его будет делать...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892579
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Я знаю прекрасно проблемы своего ПО и работаю над этим. В данном топике обсуждаются проблемы решения последствий плохой работы некачественного ПО.

Мужик. У тебя железные нервы. Снимаю шляпу. Я серьёзно.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892580
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

1. Резюмируя: длина очереди 1 намекает, что о-о-о-очень медленный диск был полностью загружен
последовательными запросами от одного-единственного потока, которым был свип. И пока этот
поток ожидал завершения чтения, все остальные потоки ничего не могли делать, поскольку
ждали своей очереди.
2.Что странно, поскольку Влад говорил, что глобальный лок уже давно
начал отпускаться на время ввода-вывода.


1. Полностью согласен.
2. Ничего странного лично я в этом не вижу. Лок локом, но если канал забит, то желающим его тела потокам просто нечем ещё заняться.
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892595
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишкаЛок локом, но если канал забит, то желающим его тела потокам просто нечем ещё заняться.

Э нет, тогда желающие громоздились бы у окошка выдачи и очередь была намного длиннее
одного тела.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Бесконечный sweep sweep
    #39892820
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, ты опять пытаешься подменить тему.

Ты сказал, что бутылочное горлышко было в конкретной ситуации, описанной YuRock

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

твою же дивизию. Давай рассмотрим когда свип реально тормозит

1. Сканируется почти вся БД, swept флаги не установлены
2. В кой-то одной или нескольких таблицах много мусора и у этих таблиц много индексов.

Собственно всё. Я сказал что сборка мусора на таблицах с индексами тяжёлая операция. И чем ббольше индексов создано для такой таблицы тем хуже.

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


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