|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
kdv SSD или не фонтан, или тоже "драйвера". NTFS сжатие же. Откуда там скорость, если он каждое обращение к диску пакует-распаковывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:48 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
kdv, Так тут же ругались на 16К :) Я и сделал меньше. Могу перетестить с 16К, не вопрос. Собственно, основное подозрение на сжатие NTFS - оно, бывает, вполне себе беспочвенно тормозит. И его уберу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:49 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
kdvНасчет "не уверен" - конкретный update читает и пишет записи по очереди. Повторного чтения страниц там не возникает (кроме обработки записей с одной страницы). Так что разницы с дефолтным кэшем в 2048 страниц не будет. Ну есть к примеру еще индексы и честно я попросту не знаю как идет работа с ними на физическом уровне при апдейтах. И если в тесте всего один индекс, то у ТС судя по статистике их вроде как чуть больше и в тч присутствует один из моих "любимых": Index RDB$FOREIGN13 (3) Depth: 3, leaf buckets: 24523, nodes: 33838204 Average data length: 0.00, total dup: 33838202, max dup: 33836508 kdvникакой существенной разницы тут вообще нет, особенно между 2048 и 50000. Что могло попасть в кэш и повторно использоваться - так это pointer pages, которые были считаны при prepare. Чтобы уж совсем убедиться - рекомендую gstat -r, и посмотреть на количество страниц таблицы. В данном случае оно как раз будет почти равно Reads from disk to cache. Я с твоего позволения все в лоб проверил и да ты прав никакой существенной разницы нет: Firebird-3.0.3.32794-0_x64, FileSystemCacheThreshold = 1M Memory buffers = 2 048 Reads from disk to cache = 1 354 088 Writes from cache to disk = 392 254 Memory buffers = 50 000 Reads from disk to cache = 1 353 807 Writes from cache to disk = 379 380 Memory buffers = 100 000 Reads from disk to cache = 1 353 777 Writes from cache to disk = 366 333 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:51 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsкаталог с данными сжат средствами NTFSOMG ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:54 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shats, у тебя классик или суперклассик? потому что для супера Memory buffers = 256 это не из "коробки" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:56 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
kdvСтраниц-то в 3 раза больше, "чем могло". Конечно, еще надо реальное заполнение учесть.Ну да - бекверсии, заголовки записей, записи о блобах - этого всего просто не существует. PS Зачем об этом думать - найдётся кто-то, кто мне всё расскажет (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 13:57 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Евгений Килинстатистика у Дениса на 3-ке интересная: Memory buffers = 8 192 Reads from disk to cache = 1 390 725 Writes from cache to disk = 433 079Я думаю, что gstat показал бы около 420000 - 430000 страниц, занятых первичными версиями. Остальное - блобы, много (их объём тоже можно увидеть), и немножко бекверсий. Т.к. блобы не перезаписываются этим апдейтом, то и страницы, где (только) они лежат, не трогаются ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:02 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Евгений Килин, да блин. Ну посмотрите сколько чтений с диска сделается. Memory buffers = 100 000 Reads from disk to cache = 1 353 777 Не увидите вы толку от увеличения кеша пока не выставите его больше этой величины. Т.е. кеш должен быть 1.5M страниц. А чтобы файловый кеш не отрубился FileSystemCacheThreshold ещё больше ставить надо. Но это как по мне уже перебор ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:03 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsТак тут же ругались на 16К :) Я и сделал меньше. Могу перетестить с 16К, не вопрос. секундочку. в нашем с Денисом тесте, на 8к Reads from disk to cache = 1 390 725 Reads from disk to cache = 1 354 088 тут в тесте Reads from disk to cache = 671 658 то есть, при той же структуре и количестве записей явно страница 16к, а не 8к. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:07 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Симонов ДенисНе увидите вы толку от увеличения кеша пока не выставите его больше этой величиныВообще говоря, это не совсем так. В данном тесте - это совсем не так, ибо повторных чтений практически нет. В общем случае - всё зависит от наличия и кол-ва повторных чтений страниц. Просто помни, что reads не показывает кол-во уникальных прочитанных страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:07 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Симонов ДенисНе увидите вы толку от увеличения кеша пока не выставите его толку от кэша не будет пока не будет повторных чтений :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:10 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
hvlad, ну значит его и вовсе бесполезно увеличивать дальше, если только мы не будем выполнять этот апдейт несколько раз подряд ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:12 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
hvladЯ думаю, что gstat показал бы около 420000 - 430000 страниц, занятых первичными версиями. Остальное - блобы, много (их объём тоже можно увидеть), и немножко бекверсий. Т.к. блобы не перезаписываются этим апдейтом, то и страницы, где (только) они лежат, не трогаются После апдейта: IMAGES (128) Primary pointer page: 180, Index root page: 181 Total formats: 1, used formats: 1 Average record length: 31.78, total records: 30000000 Average version length: 17.00, total versions: 27129644, max versions: 1 Average fragment length: 11.61, total fragments: 15860970, max fragments: 1 Average unpacked length: 306.00, compression ratio: 9.63 Pointer pages: 921, data page slots: 1502504 Data pages: 1502504, average fill: 95% Primary pages: 241910, secondary pages: 1260594, swept pages: 23116 Empty pages: 6, full pages: 1468260 Blobs: 30000000, total length: 7698888890, blob pages: 0 Level 0: 30000000, Level 1: 0, Level 2: 0 Fill distribution: 0 - 19% = 7 20 - 39% = 0 40 - 59% = 25973 60 - 79% = 23116 80 - 99% = 1453408 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 14:47 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
FireMopsmakhaon, Ну и где выполнение обещания? Основная причина тормозов обнаружена. Есть ли смысл выполнять синтетические тесты? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:03 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
makhaonОсновная причина тормозов обнаружена.И в чем же заключается основная причина тормозов? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:12 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
makhaonОсновная причина тормозов обнаружена. Есть ли смысл выполнять синтетические тесты? Ну выполнять синтетические тесты наверное нет смысла, но изначально было сказано: "По поводу производительности, что бы далеко не ходить, и не быть голословным...". Соответственно любопытно услышать подробности про "Основная причина тормозов" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:12 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:14 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Симонов Денис, Тьфу, пропустил это сообщение :( Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:21 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
kdv, Есть, однако, забавное насчет кэша. Увеличил DefaultDbCachePages до 8192, MaxUnflushedWrites до 1000 - и производительность даже при первичном заполнении таблицы вдруг подросла вдвое: было 6-7 МБайт/с 500-600 IOps, стало 20 МБайт/с 1300+ IOps. То бишь "искаропки" FB в такое не может, всё ж руками крутить надо... Я не хочу сказать, что это плохо - просто под конкретные нагрузки нужны конкретные настройки, только и всего. Возможно, имело бы смысл напилить дюжину готовых вариаций firebird.conf и какой-нибудь твикер с парой ползунков ЗДЕЛОТЬ ЗБС дать Firebird столько-то ОЗУ и столько-то процессорных ядер :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:33 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsВозможно, имело бы смысл напилить дюжину готовых вариаций firebird.conf и какой-нибудь твикер с парой ползунков ЗДЕЛОТЬ ЗБС дать Firebird столько-то ОЗУ и столько-то процессорных ядер :)Щаз вас тухлыми помидорами закидают. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:37 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsMaxUnflushedWrites до 1000 Это случай когда крутим незнамо что. Ты бы хоть коммент к этому параметру прочитал firebird.confHow often the pages are flushed on disk (for databases with ForcedWrites=Off only) Из коробки говоришь? Ты ничего насчёт ForcedWrites=Off не говорил, отсюда вывод что ты крутишь то что не действует. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:45 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsУвеличил DefaultDbCachePages до 8192, MaxUnflushedWrites до 1000 1. на тестах никогда не крути больше одного параметра зараз 2. с кэшем вы уже замучили, честное слово. В этом тесте практически нет повторных чтений, поэтому что 1024 страницы, что миллион - по барабану. a_shatsимело бы смысл напилить дюжину готовых вариаций firebird.conf уже давно. https://ib-aid.com/en/optimized-firebird-configuration/ a_shats дать Firebird столько-то ОЗУ и столько-то процессорных ядер насчет ядер - редко кто оставляет пару ядер из 12-ти или 24х для каких-то специальных задач. Так что выставить это руками не проблема. А насчет ОЗУ - слишком много факторов: размер базы, количество пользователей, чего они делают, размер сортировок, и т.д. Процесс тут такой - поменял-протестил-поменял-протестил и т.д. Причем "протестил" - на реальном работающем сервере. Так что "ползунок" тут не поможет. Все эти параметры и так в голове должны быть, и сохранены где-то как замеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 15:50 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
a_shatsВозможно, имело бы смысл напилить дюжину готовых вариаций firebird.conf и какой-нибудь твикер с парой ползунков ЗДЕЛОТЬ ЗБС дать Firebird столько-то ОЗУ и столько-то процессорных ядер :)Таки в чем проблема? Берешь Windows Server, развёртываешь Windows System Resource Manager и получаешь все свои хотелки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 16:08 |
|
Производительность update FB на SSD
|
|||
---|---|---|---|
#18+
Симонов Денис, Про ForcedWrites - понял, окай. kdv В задаче ТС действительно содержимому кэша взяться неоткуда. А в тесте, который приведен - при заполнении базы неужто ничего в кэш не попадет ? Если не рестартовать FB между заполнением и апдейтом, ессно. За тынц спс, по FB сильно отстал от жизни, сильно редко его вижу в эксплуатации. kdvПроцесс тут такой - поменял-протестил-поменял-протестил и т.д. Я знаю (с). Но это сильно много времени ест, а пуск "хоть-как-нибудь-стартанем-настроим-потом" приводит к падению сервиса посреди рабочего дня обычно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2017, 16:15 |
|
|
start [/forum/topic.php?fid=40&msg=39495364&tid=1561483]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 332ms |
total: | 603ms |
0 / 0 |