powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
25 сообщений из 71, страница 2 из 3
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530881
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоид"Кому" он передаёт грязные страницы - непосредственно файловому кешу, получается ?Нет, он на деревню деду письма пишет.
У тебя какие-то совершенно дикие представления о том, как всё устроено... где ты их только берёшь ? В mon$io_stats.page_writes, вестимо.
Я не понимаю ситуацию, при которой значение в этом столбе может оставаться постоянным (нулевым) для потока CacheWriter'a, пример тут .
И не понимаю также, почему в другом случае CW увеличил этот же счетчик на 4.1 млн, тогда как рабочий поток - только на 100 тыс.

Если не затруднит, объясни, плз, как такое может быть. Все скрипты приведены выше.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530901
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

а я не понимаю, что можно было не понять в объяснениях выше. Писать страницы (page writes) может (а) рабочий поток при коммите, либо (б) рабочий поток при заполнении кеша, либо (в) кешрайтер при заполнении кеша. Соотношение (б) и (в) зависит от нагрузки, от размера кеша и от объема изменений. На разных тестах будут разные цифры. Но кто именно будет писать - абсолютно неважно, кешрайтер просто по мере возможности помогает рабочему потоку, беря часть I/O на себя. На SC/CS помогать некому, там все пишет рабочий поток (а + б).
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530907
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrкто именно будет писать - абсолютно неважно, кешрайтер просто по мере возможности помогает рабочему потоку, беря часть I/O на себя. На SC/CS помогать некому, там все пишет рабочий поток (а + б).Спасибо, теперь ясно.
Я пребывал в заблуждении: считал, что ВСЕ страницы всегда пишет только поток CW, а рабочий поток пишет только в страничный кеш, не более того.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530930
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

объясни, плз, еще одно.

В аттаче номе 123 некий стейтмент, запущенный в момент t1 и законченный в момент t2, приводит к 1000 writes в трейсе. А разность значений в mon$io_stats.page_writes для моментов t2 & t1 аттача 123 - совсем другая, не 1000.

Такое может быть ?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530944
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

совсем другая - это сколько? Отличие небольшое или в разы?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530946
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrсовсем другая - это сколько? Отличие небольшое или в разы?Отличие в 40 раз. Тынц .
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38530947
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидdimitrсовсем другая - это сколько? Отличие небольшое или в разы?Отличие в 40 раз. Тынц .пардон, это не то совсем: там CW превышает статистику молотилки в 40 раз. Но всё равно интересно :-)
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531075
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТы с SC\CS сравнил те же действия ?сравнил статистику SS vs SC для следующего сценария:
1) база создается с нуля, FW = ON, page_size=4K, buffers = 128 ;
2) в базе создается генератор `g` и таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
SQL> show table t;
ID                              INTEGER Not Null
S01                             VARCHAR(36) Nullable
CONSTRAINT INTEG_2:
  Primary key (ID)
CONSTRAINT INTEG_3:
  Unique key (S01)

В таблицу заливается 305 тыс строк:
Код: plaintext
1.
SQL> insert into t select gen_id(g,1), uuid_to_char(gen_uuid()) from rdb$types,rdb$types,
CON> (select 1 i from rdb$types rows 5); commit;

Перед началом заливки:
1) в конфиге трейса ставится фильтр connection_id = <current_connection >
2) запускается огромный скрипт, делающий снимки мон-таблиц без переконнекта, с паузами = 1 сек (батник для его создания был приведен выше; скрипт содержит 7200 итераций, что должно хватать на время работы коннекта-молотилки и отследить его статистику).

Статистика по времени: SuperClassic оказался немного быстрее SuperServer'a.
Результаты см. в аттаче.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531079
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS-1. По трейсу и mon$iostats в SS наглядно, как общая статистика writes "перекочевала" из insert-стейтмента в cache_writer. Но деяния кешрайтера в трейсе вообще не отражаются

PS-2. Общая сумма разностей (по CW и рабочему потоку) в поле page_writes для SS оказывается меньше общего числа вставляемых в таблицу строк примерно на 6 тыс, а в SC аналогичное отличие составляет 10 тыс. Коммит выдает в трейсе около 60-70 writes (см аттач). Куда остальные тысячи подевались ?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531105
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидКуда остальные тысячи подевались ?
Тебе приходило в голову, что на одну страницу помещается несколько записей?.. И что SC
пишет страницу только когда она полностью заполнена, а у SS cache writer может ту же
станицу скинуть пару раз в недозаполненном состоянии?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531120
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидсравнил статистику SS vs SC для следующего сценария:
1) база создается с нуля, FW = ON, page_size=4K, buffers = 128 ;SS и буфер в 128 страниц ? Выкинь это всё сразу же.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531163
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоидКуда остальные тысячи подевались ?Тебе приходило в голову, что на одну страницу помещается несколько записей?.. И что SC
пишет страницу только когда она полностью заполнена, а у SS cache writer может ту же
станицу скинуть пару раз в недозаполненном состоянии?..Причём тут число записей таблицы в одной странице базы ? У мну в 4096 байт должно быть floor(4096 / (16 + (4+36))), т.е. ~ около 70 записей (не помню точно, сколько байт занимает заголовок: не то 13, не то 17; взял 16) - дальше что ?
Если одна и та же страница меняется кешрайтером много раз, то результат должен быть обратным: сумма разностей mon$io_stats.page_writes будет больше , чем то, что показывает трейс.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531167
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидсравнил статистику SS vs SC для следующего сценария:
1) база создается с нуля, FW = ON, page_size=4K, buffers = 128 ;SS и буфер в 128 страниц ? Выкинь это всё сразу же.я намеренно сделал так, чтобы CW пришлось потрудиться.
Почему "выкинуть" и какой тогда буфер ставить ?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531173
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

что ты тестируешь ? Какая у тебя цель ?
Откуда ты взял, что кол-во writes должно совпадать с кол-вом inserts ????
cache writer не меняет страницы, что за бред ?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531175
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоиддальше что ?
Дальше пойди проспись, а потом точно сформулируешь: что именно "меньше" и чего именно оно
"меньше". В то ты уже начал говорить как Болтик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531188
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоиддальше что ?Дальше пойди проспись, а потом точно сформулируешь: что именно "меньше" и чего именно оно "меньше". В то ты уже начал говорить как Болтик.я не пил с НГ и постарался сформулировать всё доходчиво; жаль, что тебе в лом открывать тот аттач с экселем.
На, картинку посмотри, может, быстрее допрёт...
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531191
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

тебя уже выше спросили: на кой ляд ты сравниваешь число вставленных строк с числом записанных страниц?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531200
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrтебя уже выше спросили: на кой ляд ты сравниваешь число вставленных строк с числом записанных страниц?Если они не должны быть равны, то... они не могут быть и настолько близкими, как тут (310 vs 315 тыс)!
Ибо в 1 страницу базы размером 4096 влезает десятки записей с полями int & varchar(36).
Да, там есть еще два индекса, но и там на 1 страницу влезает десятки ключей.
Если счетчик writes увеличивается только когда страница заполнится, то ввиду вышесказанного первое число скорее должно быть не 310 тысяч, а 31 тысяча.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531207
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

так бы оно и было, если бы ты не выставил кеш в дурацкие 128 страниц и не заставил бы этим кешрайтера писать страницы не дожидаясь их заполнения. О чем DS тебе сказал выше.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531210
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидсравнил статистику SS vs SC для следующего сценария:
1) база создается с нуля, FW = ON, page_size=4K, buffers = 128 ;SS и буфер в 128 страниц ? Выкинь это всё сразу же.повторил для буфера = 16384 (в SC так и в SS; FW вырубил).
Запрос:
Код: sql
1.
insert into t select gen_id(g,1), uuid_to_char(gen_uuid()) from rdb$types,rdb$types,(select 1 i from rdb$types rows 100)

(6.3 млн строк)

Трейс для SuperServer'a:
Код: plaintext
1.
2.
3.
4.
5.
  359886  ms, 3285251 read(s), 314387 write(s), 95597746 fetch(es), 26398164 mark(s)
Table                             Natural     Index    Update    Insert    Delete
**********************************************************************************
RDB$PAGES                                                           148
RDB$TYPES                         6325300
T                                                               6300100

Трейс для SuperClassic'a:
Код: plaintext
1.
2.
3.
4.
5.
  411584  ms, 3283975 read(s), 3689165 write(s), 95613976 fetch(es), 26397700 mark(s)
Table                             Natural     Index    Update    Insert    Delete
***********************************************************************************
RDB$PAGES                                                           148
RDB$TYPES                         6325300
T                                                               6300100
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531221
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrтак бы оно и было, если бы ты не выставил кеш в дурацкие 128 страницИ не сделал бы индекс по guid полю.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531223
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидповторил для буфера = 16384 (в SC так и в SS; FW вырубил).Всё, счастье настало ?
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531229
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу, забыл эксель прилепить к предыдущему посту.
Смотрим аттач.

Там общая статистика по mon$iostats:
1) в SuperServer'e:
THREADTOTAL_DIFF_WRITESCACHE_WRITER3 384 221 SYSDBA330 176 TOTAL 3 714 397 2) в SuperClassic'e разность счетчика page_writes = 3 704 960

Итого: при вставке 6.3 млн строк в таблицу и два её индекса счетчик writes дёргался 3.7 млн раз.
При том, что в 1 страницу базы влезает чуть ли не 60 строк таблицы (и индексных ключей столько же, таков DDL).
Буфер = 16384 страниц, в 8 раз больше дефолтного.

Не вижу в упор проявления алгоритма:DSSC пишет страницу только когда она полностью заполнена
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531233
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladчто ты тестируешь ? Какая у тебя цель ?
Откуда ты взял, что кол-во writes должно совпадать с кол-вом inserts ????Цель одна: понять, откудова взялись такие тупняки при заполнении таблиц в известном тебе тесте. И особенно - откудова они же (тупняки, только ГИГАНТСКИЕ) при выполнении второго теста: delete => select count(*) ==> insert.
Когда ждёшь результаты выполнения скриптов по 18...24 ч, поневоле начнёшь думкать в эту сторону.
hvladТаблоидповторил для буфера = 16384 (в SC так и в SS; FW вырубил).Всё, счастье настало ?неа...увы и ах.
...
Рейтинг: 0 / 0
Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
    #38531241
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЦель одна: понять, откудова взялись такие тупняки при заполнении таблиц в известном тебе тестеВ статистике ФБ ты этого не найдёшь.
Таблоиднеа...увы и ах.Ну значит так и запишем - безнадёжен.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка в индексир.таблицы: cache writer в 1 ед времени пишет в 20 раз > раб. потока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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