Как стать автором
Обновить

Комментарии 5

Вставки в постргрес и редис на каждом запросе? Это сколько ядер у вас на сервере держит 40к\сек при этом?
Почему решили, что на каждый запрос идет вставка в postgres и redis?
И почему вставка данных в postgres или redis должна сильно загружать процессор?

Каждый запрос записывается в kafka, оттуда уже данные забираются и обрабатываются.
Например та же вставка данных в БД происходит пачками.
В частности, какое-то время мы воевали с хостером, т.к. данные о сделках просто не успевали записываться в базу

Вот тут я сделал вывод что вы в реал-тайме пишете в базу, иначе такой проблемы не возникло бы (с COPY FROM file так точно).
Для этого отдельный сервис в режиме реального времени составляет карту того, как DSP отвечает на запросы (карты эти хранятся в Redis).

А вот тут вывод о том что вы дергаете редис на каждый запрос.

В нашем решении той же проблемы редис быстро стал боттлнеком, про постгрес даже мысли не было писать туда в рилтайме. Так сколько у вас ядер на сервер держат 40к\сек и сколько исходящих запросов вы генерите на каждый запрос в среднем? Интересно сравнить со своими достижениями…
Вот тут я сделал вывод что вы в реал-тайме пишете в базу, иначе такой проблемы не возникло бы (с COPY FROM file так точно).

Проблема возникла именно с COPY FROM file, мы уперлись в скорость дисков.
И решилось собствено заменой Raid массива.
А на каждый запрос писать отдельным запросом, такое конечно тут бы не взлетело.

А вот тут вывод о том что вы дергаете редис на каждый запрос.

Обновляются данные в redis не на каждый запрос, а периодически, можно сказать по расписанию.
Насчет получения данных. Данные частично кешируются на серверах аукционов.
А какие проблемы у вас были с redis?

Так сколько у вас ядер на сервер держат 40к\сек и сколько исходящих запросов вы генерите на каждый запрос в среднем? Интересно сравнить со своими достижениями…

Запросы обрабатывают 4 сервера, соотвественно каждый по 10к QPS
На каждом сервере 4 физических ядра и 16 гигов оперативы
На внешние системы формируется в среднем около 5-7 запросов
>А какие проблемы у вас были с redis?
Ну просто это стало самым медленным этапом обработки запроса — посыл запроса и ожидание ответа от редиса по сети. Даже на локальной машине. Пришлось все общие данные (для данной шарды) хранить в разделяемой памяти, а общие счетчики по системе делать вероятностными…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий