local bucket_id = vshard.router.bucket_id_strcrc32({masterId, pointOfSale})
local data, err = vshard.router.callbro(bucket_id, 'box.space.accommodation_store:get', { {tonumber64(masterId), pointOfSale} }, { timeout = 300 })
cr-cartridge.tarantool-storages-0-0> box.space.accommodation_store:format()
---
- [{'name': 'masterId', 'type': 'unsigned'}, {'name': 'pointOfSale', 'type': 'string'},
{'name': 'bucket_id', 'type': 'unsigned'}, {'name': 'value', 'type': 'any'}]
...
cr-cartridge.tarantool-storages-0-0> box.space.accommodation_store:len()
---
- 1132032
...
на нагрузке в ~1k rps начинает дико тормозить, время выполнение ~2sec (99 персентиль). Бьюсь который день… Что можно проверить, как найти причину (что то блочится ?). При чем, как http так и iproto..
при чем есть какая то зависимость от того, как быстро (сколько) в начале приходит запросов. Например, в “синтетических” тестах wrk (нет особой разницы http или iproto, картина примерно одинаковая) на 200 клиентов (со всеми возможными вариантами {masterId, pointOfSale}) выдает rps порядка 13k. Но, если тестировать “трафик с продакшена” по всей цепочке (мы умеем “повторить” все прод запросы на стейдж), то видим проблему..
Обсуждают сегодня