SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » от чего зависит скорость записи?
от чего зависит скорость записи? [сообщение #3355] Thu, 12 October 2023 11:37 Переход к следующему сообщению
Квази в настоящее время не в онлайне  Квази
Сообщений: 32
Зарегистрирован: June 2022
Member
Сделал небольшой тест
подсказки брал отсюда: https://habr.com/ru/articles/476636/

параметры firebird.conf
DefaultDbCachePages = 500K   
FileSystemCacheThreshold = 600K
размер кэша на странице заголовка БД - 0
start 12.10.2023 12:28:00
finish 12.10.2023 12:58:04

параметры firebird.conf те же самые, но размер кэша заголовке поменял на 1024
результат теста:
start 12.10.2023 14:10:44
finish 12.10.2023 14:15:20

тест конечно грязноватый, между после смены заголовка только перезапустил сервис, но почему такая разница?
тестовое приложение - связка из сервера приложений и клиента.
Сервер приложений - IIS + веб-сервис Net Framework 4 + firebirdclient (не самый свежий)
клиент - консольное приложение, которое запускает 70 потоков (по количеству пользователей из таблицы пользователей) читает список документов (для всех пользователей разный. но одинаковый для каждого пользователя в каждой сессии). Потом пробегает по списку документов и для каждого документа пишет запись в таблицу протокола. Протокольная запись - несколько служебных байт и один из двух текстов (один на русском, другой на казахском), примерно на килобайт каждый, выбираются рандомно.  
Конфигурация - не очень свежий ноут с Ryzen 5, база на hdd, RAM 16, win 11.
Server Version: WI-V3.0.10.33601 Firebird 3.0
Server Implementation: Firebird/Windows/AMD/Intel/x64
Service Version: 2
Supersever
База одна и та же, между тестами не делал ничего, размер страницы 8192.
Re: от чего зависит скорость записи? [сообщение #3357 является ответом на сообщение #3355] Thu, 12 October 2023 11:46 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
Что именно ты меряешь?

Время insert/update? Время commit? insert/update + commit?
Или вообще всё это вместе с чтением?

То есть 70 потоков одновременно пишут в одну таблицу?
Re: от чего зависит скорость записи? [сообщение #3360 является ответом на сообщение #3357] Thu, 12 October 2023 12:06 Переход к предыдущему сообщениюПереход к следующему сообщению
Квази в настоящее время не в онлайне  Квази
Сообщений: 32
Зарегистрирован: June 2022
Member
sim_84 писал(а) Thu, 12 October 2023 11:46
Что именно ты меряешь?

Время insert/update? Время commit? insert/update + commit?
Или вообще всё это вместе с чтением?

То есть 70 потоков одновременно пишут в одну таблицу?
Да, все потоки пишут в одну таблицу. замеряется старт потока и его окончание.  Поток - имитация работы приложения - считать список документов, по каждому документу принять решение и записать решение с комментариями в таблицу протокола.
P.S. у одного клиента постоянно вылазит 503 ошибка на IIS, но воспроизвести не получается. Поэтому решил сделать этакий DDOS - сымитировать работу всех пользователей. В процессе работы вспомнил про упомянутую статью.
Re: от чего зависит скорость записи? [сообщение #3366 является ответом на сообщение #3360] Thu, 12 October 2023 12:58 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
То есть ты не знаешь что именно замедлилось, поскольку меряешь всё в куче
Re: от чего зависит скорость записи? [сообщение #3372 является ответом на сообщение #3366] Thu, 12 October 2023 14:48 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Не замедлилось, а ускорилось. И да, давно не секрет, что для записи чем меньше кэш - тем лучше, ибо снижает накладные расходы на поддержание списка грязных страниц.

Ну и стартовая сумма в 500к страниц это сильный перелёт. Если взялся тестировать - тестируй больше точек. Скажем, с шагом в 10к.
Re: от чего зависит скорость записи? [сообщение #3389 является ответом на сообщение #3372] Fri, 13 October 2023 12:30 Переход к предыдущему сообщениюПереход к следующему сообщению
Старый Плюшев в настоящее время не в онлайне  Старый Плюшев
Сообщений: 95
Зарегистрирован: August 2022
Географическое положение: Ленинград
Member
Вообще-то оптимизация сервера именно под запись делается в специфических системах - потоковых регистраторах, САУ и т.п. В большинстве программных систем широкого профиля количество чтений записи в тысячи раз превышает количество её модификаций, не говоря уже о вставках. Если не в миллионы. Соответственно, оптимизируется чтение. А про запись - имеют в виду рассуждения общего плана. Не создают лишних плохих индексов, чтобы снизить затраты на их перестройку при модификациях, и длинных-разветвлённых триггерных цепочек чтобы сократить затраты на проверку прав доступа.
Re: от чего зависит скорость записи? [сообщение #3390 является ответом на сообщение #3372] Fri, 13 October 2023 13:00 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD писал(а) Thu, 12 October 2023 14:48
И да, давно не секрет, что для записи чем меньше кэш - тем лучше, ибо снижает накладные расходы на поддержание списка грязных страниц.
Не могу пройти мимо - а что же там за накладные расходы такие ?
Re: от чего зависит скорость записи? [сообщение #3396 является ответом на сообщение #3390] Fri, 13 October 2023 14:24 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
hvlad писал(а) Fri, 13 October 2023 12:00

Не могу пройти мимо - а что же там за накладные расходы такие ?
Э-э-э... Граф зависимостей, сделанный в виде линейного связного списка?..
Re: от чего зависит скорость записи? [сообщение #3400 является ответом на сообщение #3396] Fri, 13 October 2023 16:30 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD писал(а) Fri, 13 October 2023 14:24
hvlad писал(а) Fri, 13 October 2023 12:00

Не могу пройти мимо - а что же там за накладные расходы такие ?
Э-э-э... Граф зависимостей, сделанный в виде линейного связного списка?..
Ты определись - список грязных страниц или зависимости ?
Граф или список ?
Жевать или ...

Re: от чего зависит скорость записи? [сообщение #3402 является ответом на сообщение #3400] Sat, 14 October 2023 00:34 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Я думаю, ты не забыл, что для поддержания целостности БД сервер пишет грязные страницы на диск в определённом порядке, для чего ведёт список их взаимозависимостей?..
Re: от чего зависит скорость записи? [сообщение #3403 является ответом на сообщение #3402] Sat, 14 October 2023 00:38 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD писал(а) Sat, 14 October 2023 00:34
Я думаю, ты не забыл, что для поддержания целостности БД сервер пишет грязные страницы на диск в определённом порядке, для чего ведёт список их взаимозависимостей?..
Ты совершенно прав - я не забыл Smile
И как это связано с твоими утверждениями (которые ты стесняешься цитировать) ?
Re: от чего зависит скорость записи? [сообщение #3405 является ответом на сообщение #3403] Sat, 14 October 2023 13:46 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Больше грязных страниц - длиннее список зависимостей - больше времени уходит на его поддержание в правильном порядке.
Re: от чего зависит скорость записи? [сообщение #3406 является ответом на сообщение #3405] Sat, 14 October 2023 14:04 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD писал(а) Sat, 14 October 2023 13:46
Больше грязных страниц - длиннее список зависимостей - больше времени уходит на его поддержание в правильном порядке.
Вот откуда у тебя такой набор предположений, совершенно не связанных с реальностью ?
Ты это чем-то можешь подтвердить ?
Ты это как-то измерил ?
Ты хотя бы код смотрел ?
Ты отличаешь список грязных страниц от графа зависимостей ? А список от графа ?
Ты знаешь про существование двусвязных списков ? А про стоимость операций с ними ?
Re: от чего зависит скорость записи? [сообщение #3420 является ответом на сообщение #3355] Mon, 16 October 2023 15:32 Переход к предыдущему сообщениюПереход к следующему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 91
Зарегистрирован: June 2022
Member
повтори тест в обратном порядке. Причем, не ставь 500к страниц кэша, если памяти на компе меньше 16 гиг (потому что 500к страниц по 16к это 8 гиг).
Re: от чего зависит скорость записи? [сообщение #3451 является ответом на сообщение #3420] Fri, 20 October 2023 18:32 Переход к предыдущему сообщениюПереход к следующему сообщению
Квази в настоящее время не в онлайне  Квази
Сообщений: 32
Зарегистрирован: June 2022
Member
Накидал батник
"C:\Program Files\Firebird\Firebird_3_0\gfix.exe" -user SYSDBA -password masterkey -b 500000* 127.0.0.1/3051:D:\test\test3.FDB
тут_запуск_тестовой_проги.exe

"C:\Program Files\Firebird\Firebird_3_0\gfix.exe" -user SYSDBA -password masterkey -b 250000* 127.0.0.1/3051:D:\test\test3.FDB
тут_запуск_тестовой_проги.exe

и т.д.
*500000
start 20.10.2023 19:47:11
finish 20.10.2023 20:14:10

*250000
start 20.10.2023 20:14:35
finish 20.10.2023 20:31:05

*100000
start 20.10.2023 20:31:23
finish 20.10.2023 20:41:09

*50000
start 20.10.2023 20:41:21
finish 20.10.2023 20:51:44

10000
start 20.10.2023 20:51:56
finish 20.10.2023 21:03:05

2000
start 20.10.2023 21:03:20
finish 20.10.2023 21:13:37


Почти все как в первом тесте. Отличие - в первом тесте каждый "пользователь" (т.е. поток) вставлял по 10 записей, в этом по 100.




[Обновления: Fri, 20 October 2023 18:33]

Известить модератора

Re: от чего зависит скорость записи? [сообщение #3461 является ответом на сообщение #3451] Sat, 21 October 2023 13:59 Переход к предыдущему сообщениюПереход к следующему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 91
Зарегистрирован: June 2022
Member
- я глаза сломаю вычитать finish из start. Приложите минимум усилий, сами сделайте вычисления, и опубликуйте их тут. Нахрена тут вот эти старт и финиш отдельно?
- есть тест https://ib-aid.com/en/simple-insert-update-delete-test-for-f irebird/
чем он не нравится?
Re: от чего зависит скорость записи? [сообщение #3464 является ответом на сообщение #3461] Sat, 21 October 2023 14:44 Переход к предыдущему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Расшифровываю: до 100к страниц кэша время стабильно в районе 10 минут, выше система уходит в своп и начинает тормозить.
Предыдущая тема: FB2.5 ошибки загрузки библиотек
Следующая тема: Wirecompression
Переход к форуму:
  


Текущее время: Thu May 02 23:10:04 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00919 секунд