Как мы держим p95 приёма на уровне 24 мс

Приём событий кажется простой задачей, пока поток не становится неравномерным. Разбираем, что именно даёт стабильные 24 мс.

На графиках приём событий выглядит ровной линией. В реальности это набор всплесков: мобильные клиенты просыпаются одновременно, рекламные кампании стартуют в полночь, а cron-задачи — в начале часа.

Три источника задержки

Мы разнесли эти этапы по разным пулам и перестали ставить валидацию в горячий путь. Схема проверяется один раз при подключении источника, а на событии остаётся быстрая проверка типов.

Стабильность p95 — это не про железо, а про то, сколько работы мы делаем на каждом этапе.

Что ещё помогло

Ограничение скорости на источник и отдельная очередь для «тяжёлых» событий. Если источник присылает много крупных сообщений, он не тормозит остальных.

Сейчас p95 держится на 24 мс при 214 млрд событий в сутки. Следующая цель — 15 мс без роста стоимости.

ДМ
Дарья Мельник

Команда Gamma Space. Пишем о том, что делаем и чему учимся.

Попробуйте Gamma Space

Бесплатный старт без карты. Поможем с первым проектом и ответим на вопросы.

Действие выполнено