|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Поставил 3.0.5 на Debian Linux, наблюдаю периодическое торможение старта транзакции. Сервер: Linux db 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux по железу хилый, но по мониторингу загрузка ЦП и дисков низкая; и я бы еще понял тормоза при выполнении запроса, но старт? памяти 2,7 Гб свободно Код: sql 1. 2. 3.
FB: 3.0.5 из пакета конфиг - стандартный База: ~100 Мб - оперативная очередь записей (телеметрия) ~5 писателей, 20 читателей (половина read read committed, половина read snapshot). транзакции завершаются сразу после запроса, в сумме ~80 тр/сек, OIT не отстает был триггер на старт транзакции (простой, несколько rdb$get_context и проверок текущих параметров), но сделал его inactive чистка старых записей выполняется по счетчику коннектами писателей. Каждую вставку дергается счетчик (генератор). В среднем чистка выходит примерно каждые 2 сек. page size = 16384, FW=off, pages buffers = 2048 Клиент: прога на Delphi под Windows, IBX, клиентская либа от 3-ки Периодически (3-4 раза за 10 минут) старт транзакции превышает 600 мс (до 3-4 секунд), причем даже для читающего read read committed соединения! Подскажите, плиз, куда копать. Была версия, что это конкуренция за страницу со счетчиком транзакций или за генераторы, но как это выяснить - неизвестно. Я бы вообще всю базу в кеш запихал, но на дефолтных настройках это порядка 30 Мб, что, в общем-то, треть базы и должно включать все "горячие" записи. На сервере с Windows старичок 2.5 крутится с большей нагрузкой, включая udf логов на каждое обращение, правда, на RAM drive, и не имеет таких проблем. fb_lock_print: LOCK_HEADER BLOCK Version: 146, Creation timestamp: 2021-05-26 14:22:37 Active owner: 0, Length: 1048576, Used: 281944 Enqs: 667793, Converts: 25, Rejects: 484395, Blocks: 0 Deadlock scans: 0, Deadlocks: 0, Scan interval: 10 Acquires: 877611, Acquire blocks: 317, Spin count: 0 Mutex wait: 0.0% Hash slots: 8191, Hash lengths (min/avg/max): 0/ 0/ 4 Remove node: 0, Insert queue: 0, Insert prior: 0 Owners (27): forward: 78400, backward: 271024 Free owners: *empty* Free locks (22): forward: 79112, backward: 245128 Free requests (14): forward: 274232, backward: 281080 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:32 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
gstat: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:41 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, в логе нет ли постоянных записей об свипе ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:44 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
26.05.2021 18:41, Fr0sT-Brutal пишет: > Sweep interval: 5000 чо-то как-то нафига так то? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 18:45 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
hvlad Fr0sT-Brutal, в логе нет ли постоянных записей об свипе ? Последний от 16 апреля, и то это какая-то флуктуация, база 24/7 в работе... Мимопроходящий 26.05.2021 18:41, Fr0sT-Brutal пишет: > Sweep interval: 5000 чо-то как-то нафига так то? Мало или много? Дефолт при создании через isql :) да и в моем случае разница даже в 500 - уже повод беспокоиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:01 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalМало или много? Дефолт при создании через isql :) Дефолт 20000 вообще-то... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:14 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Fr0sT-BrutalМало или много? Дефолт при создании через isql :) Дефолт 20000 вообще-то... А, все верно. Создание из скрипта у меня только обкатывается, на боевой машине база скопирована из сервера на Windows, а там по каким-то историческим причинам 5т ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:46 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, господи. Вы учитывайте, что InterBase был придуман 35 лет назад, и подавляющее большинство дефолтных параметров устарели черт знает как, и вплоть до сейчас их надо в основном УВЕЛИЧИВАТЬ. Не было 30 лет назад систем с миллионами транзакций в сутки, а у вас их 7 миллионов. Поэтому дефолтный sweep interval это всего 20к. А ставить его 5к - это вообще издевательство. Это задолбать базу свипом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 20:01 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
kdvНе было 30 лет назад систем с миллионами транзакций в сутки, а у вас их 7 миллионов. Поэтому дефолтный sweep interval это всего 20к. А ставить его 5к - это вообще издевательство. Это задолбать базу свипом. Sweep делается не "каждые <sweep interval> транзакций". Видишь же, последний раз он у автора сработал только в апреле. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 20:07 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, видимо, у него роллбэки редко случаются. У нас с тобой давние разногласия про свип, так что давай не будем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 20:26 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
kdv господи. Вы учитывайте, что InterBase был придуман 35 лет назад, и подавляющее большинство дефолтных параметров устарели черт знает как, и вплоть до сейчас их надо в основном УВЕЛИЧИВАТЬ. Не было 30 лет назад систем с миллионами транзакций в сутки, а у вас их 7 миллионов. Поэтому дефолтный sweep interval это всего 20к. А ставить его 5к - это вообще издевательство. Это задолбать базу свипом. Не, ну если бы свип часто происходил, то конечно я бы значение подправил :) но в моей схеме это крайне редкое событие, т.ч. роли не играет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 14:14 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, ага, конечно. ты бы в лог смотрел регулярно (про свип), и всё такое. Нефиг дурные параметры ставить, а потом еще их оправдывать "потому что у меня так не бывает". Сегодня нет, а завтра роллбэк случится. Сегодня 10 юзеров, а завтра 100. База 10 гиг, а завтра 100 гиг. Не надо привыкать к плохому и неправильному. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 14:38 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
kdvСегодня нет, а завтра роллбэк случится. Роллбэк для этого нужен жёсткий, уровня падения сервера. Иначе он незаметно для себя превратится в коммит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 14:43 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, роллбэк = застревание OIT. Я это имею в виду. Роллбэк можно соорудить разными способами - ins/upd/del всякого тыщ на 80 записей, потом роллбэк - коннект с np_auto_undo, ничего не делать и роллбэк - убить процесс на классике (зависший или работающий). ну и еще что-то там. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 15:06 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
kdvРоллбэк можно соорудить разными способами- ins/upd/del всякого тыщ на 80 записей, потом роллбэк- коннект с np_auto_undo, ничего не делать и роллбэк- убить процесс на классике (зависший или работающий). Всё это требует совершенно невменяемого разработчика. И даже в этом случае мелкий sweep interval выгоднее чтобы база не успела зарасти мусором и свип прошёл быстро и безболезненно. Особенно для тройки и четвёрки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 15:26 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, посмотрите в /tmp/firebird на наличие больших файлов блокировок/трассировок. Если смонтировать /tmp в tmpfs ускорит работу с lock-таблицами. Но при этом учесть, что там также создаются файлы сортировок, блобы, временные таблицы. Так же посмотрите с security.fdb все в порядке (sweep, транзакции и т.д.), про неё забывают, а при подключении к ней всегда идет обращение. Если на классике, то посмотрите не накапливаются процессы от отвалившихся клиентов. Не активные процессы могут вытеснятся в swap, а при подключении загружаться обратно. На супере не так критично. Ещё как-то встречал, что тормозило на syslog, т.к. он синхронно сообщения писал. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 15:49 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Для чистоты эксперимента наваял тестер на основе isql check.bat Код: sql 1. 2. 3.
gensql.bat Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Долбит каждые 50 мсек по транзакции, задержки свыше 300 мс пишет в лог 16:49:13.08 1016 16:49:16.07 406 16:49:20.25 890 16:53:56.04 359 16:55:44.26 359 17:04:17.49 1188 17:08:11.20 1157 17:13:47.09 359 Не так критично, но факт имеет место быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:24 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
27.05.2021 17:24, Fr0sT-Brutal пишет: > set transaction wait READ ONLY очень интересно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:27 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, тут в куче время старта тр-ции, выполнения запроса и коммита. Навскидку - задержки могут быть как из-за флаша кеша FB (по-умолчанию он не отключен при FW=OFF), из-за создания и записи новой TIP, из-за сброса кеша OS (он тоже не резиновый и у него есть свои алгоритмы\критерии чекпойнтов). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:30 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Sergey A. Volkov посмотрите в /tmp/firebird на наличие больших файлов блокировок/трассировок. Если смонтировать /tmp в tmpfs ускорит работу с lock-таблицами. Но при этом учесть, что там также создаются файлы сортировок, блобы, временные таблицы. Так же посмотрите с security.fdb все в порядке (sweep, транзакции и т.д.), про неё забывают, а при подключении к ней всегда идет обращение. в /tmp/firebird всего 5 Мб Хм, /tmp смотнтировать попробую В security3 вроде все нормально... Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:31 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
27.05.2021 17:31, Fr0sT-Brutal пишет: > Attributesforce write оно тебе точно надо? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:34 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Особенно для тройки и четвёрки В четвёрке, вроде как, уже и при восстановлении страницы помечаются как чистые. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:37 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Мимопроходящий 27.05.2021 17:31, Fr0sT-Brutal пишет: > Attributesforce write оно тебе точно надо? Это ж секурити... тем более тут я точно ничего не менял, как поставилось, так и осталось ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 17:39 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, если пнуть подключение к БД с параметром isc_dpb_no_garbage_collect в DPB, задержка проявляется? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 10:11 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev Fr0sT-Brutal, если пнуть подключение к БД с параметром isc_dpb_no_garbage_collect в DPB, задержка проявляется? Спасибо! попробую. Тем временем: переделанные согласно верному замечанию kdv тесты на isql вроде бы показывают неплохие задержки (не выше 400 мс), но, возможно, это из-за заведомо пустой выборки. Обложенный таймерами тест на собственной программе показывает задержку на FDatabases[0].GDSLibrary.isc_start_multiple, т.е. это точно не шелуха обертки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 11:35 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev Fr0sT-Brutal, если пнуть подключение к БД с параметром isc_dpb_no_garbage_collect в DPB, задержка проявляется? Увы, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 17:38 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, очевидно, проблема заторможенности старта транзакции не в кооперативной сборке мусора. Смотрите триггеры старта транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 10:46 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Спасибо всем за участие и советы! Совсем уже был в тупике, когда заметили, что другие машины тоже случайным образом подвисают на несложных операциях. Проблема оказалась в медленных дисках (машины виртуальные). Перевели их системные диски на SSD, и всё пришло в норму. Догадаться было непросто, т.к. тормоза происходили исключительно на старте транзакции, а базы все перевел на RAM разделы, т.е. вроде бы скорость диска никак не должна была влиять. А вот однако ж. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2021, 16:17 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
23.06.2021 16:17, Fr0sT-Brutal пишет: машины виртуальные. за это убивать надо! © Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2021, 16:19 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Мимопроходящий 23.06.2021 16:17, Fr0sT-Brutal пишет: машины виртуальные. за это убивать надо! © Облака, итить их... Ничего не поделаешь. Хотя в конторе тоже виртуалки и все нормально крутится. Сам предпочитаю честную предсказуемую железяку, но для нашего Птыца много не нужно, а поди найди такой дохленький сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2021, 17:06 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, если Firebird сервер в облаке, то виртуальные диск ОС надо класть на SAN с доступом по iSCSI, а сами базы Firebird на ФС (желательно ZFS) в отдельном LUNе, а не внутри виртуального диска, чтобы сократить накладные расходы на доступ к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2021, 11:54 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
если сервер в облаке как правило тебе мало что известно и от тебя мало что зависит... сейчас все работает, а через пол часа кредиты кончились и иопсы ниже плинтуса упали ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2021, 13:12 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, как правило, когда определяются с провайдером облака, то уточняют перечень предоставляемых услуг. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 10:53 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev а сами базы Firebird на ФС (желательно ZFS) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 14:02 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev базы Firebird на ФС (желательно ZFS) Денис, а зачем zfs на диске с базой? Я просто ни разу с таким не сталкивался, все всегда делают RAID 10 и не парятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 15:02 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky> года 3 назад был прецедент с бтрфс А чем обосновывался выбор? Просто эксперимент? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 16:30 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Gallemar rdb_dev базы Firebird на ФС (желательно ZFS) Денис, а зачем zfs на диске с базой? Я просто ни разу с таким не сталкивался, все всегда делают RAID 10 и не парятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2021, 11:04 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky rdb_dev а сами базы Firebird на ФС (желательно ZFS) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2021, 11:09 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev Дегтярев Евгений, как правило, когда определяются с провайдером облака, то уточняют перечень предоставляемых услуг. вариант когда у конторы уже есть инфраструктура в облаке не рассматривается? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 06:16 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
rdb_dev Игорь, а зачем вам нужен был XtermIO Его покупали т.к. на тот момент он был для организации с большой скидкой, а по показателям скорости как раз подходил, идею с снепшотами уже потом стали использовать как замену nbackup. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 09:28 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
28.06.2021 06:16, Дегтярев Евгений пишет: > > вариант когда у конторы уже есть инфраструктура в облаке не рассматривается? если контора не Амазон с Яндыксом, то ну её в пень, такую контору. там питарасы у руля! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 13:00 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Просто эксперимент? Гаджимурадов Рустам А чем обосновывался выбор? rdb_dev Я тебе ещё тогда написал Лучше расскажи про сейчас и про zfs. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 18:25 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky rdb_dev а сами базы Firebird на ФС (желательно ZFS) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 23:04 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, ext4 не считает хэши страниц ФС для поддержки дедупликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 09:12 |
|
Затормаживается старт транзакции
|
|||
---|---|---|---|
#18+
Siemargl, даже самому интересно стало... Как-нибудь потестирую ФБ на своих платформах. Если у кого-то есть готовый тест и результаты на имеющихся у вас платформах, линканите из облака, плз. Хоть будет с чем сравнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 09:17 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1559997]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 173ms |
0 / 0 |