🔎 Как экспонента и гамма-распределение помогли спрогнозировать RPS на поллинговой ручке
На связи Степан Карпов, разработчик в Яндекс Go. Сегодня я расскажу, как математическая модель спасла нас от серьёзной ошибки при планировании ресурсов для поллинга.
Дело было так: мы решили ускорить сетевую диагностику и уменьшить интервал с 5 минут до 30 секунд. Казалось, что если клиенты станут ходить в 10 раз чаще, то и RPS вырастет в 10 раз. Мы заложили ресурсы на 50 000 RPS, но после запуска увидели лишь 25 000. Куда пропали остальные запросы?
💻 Ответ подсказала математика. Я построил модель с опорой на экспоненциальное распределение времени сессии пользователя и вывел формулу, которую вы можете прочитать в обложке к посту.
Она объяснила, почему зависимость RPS от интервала поллинга — не линейная, а гиперболическая. Позже мы уточнили модель с помощью гамма-распределения и метода Монте-Карло, который помог нам ещё точнее предсказывать нагрузку.
🅰️ В статье на Хабре я разбираю:
🔴 Почему тривиальный расчёт «в N раз чаще» не работает на масштабе миллионов пользователей
🔴 Как вывести формулу RPS через матожидание и интегралы
🔴 Что форма распределения говорит о поведении пользователей (пассажиры vs водители)
🔴 Как подобрать параметры распределения по экспериментальным данным
⏩️ Читать статью на Хабре
Подписывайтесь:
💬 @Yandex4Developers
Post #1437
5.35K

- 🔥 18
- 👍 9
- ❤ 4
- 🗿 1