TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #670

@systemswing

Системный сдвиг

Просмотры4,680Количество просмотров
Опубликован11 мар.11.03.2025, 15:45
Содержимое поста

Содержимое

Про математику в системном анализе и проектировании. Я вообще топлю за инженерные методы в разработке, в частности — за расчеты. Вы, наверное, могли заметить. Используются математические методы в анализе и проектировании нечасто. Тем ценнее ситуации, когда их можно применить, причем с очевидной пользой. Рассмотрим такую задачу: мы проектируем интеграцию или API бэкенда, и хотим оценить пиковую нагрузку. Допустим, у нас есть 1000 пользователей, и сценарий их работы такой, что каждый из них за час делает примерно 10 запросов к системе в случайное время. Какой RPS (число запросов в секунду) должен выдерживать сервер? Если просто 1000*10/(60*60) — число пользователей на число операций деленое на число секунд в одном часе — получится 2.78 запросов/сек. Но, очевидно, запросы от разных пользователей могут совпадать по времени. Для моделирования такой ситуации нужно использовать пуассоновский процесс, а точнее — распределение Пуассона. Оно задается жутковатой формулой вероятности: P(k)=λˆk*eˆ-λ/k! (да, лямбда в степени k, умноженное на e в степени -λ, деленое на k факториал), где λ — среднее количество событий за промежуток времени, k — интересующее нас количество событий, P(k) — вероятность того, что k событий произойдут в одну секунду. В нашем примере λ = 2.78, а k можно разные подставлять: P(5) = 0.086 P(6) = 0.04 P(7) = 0.016 Для нашего количества событий (10000) эти вероятности очень велики, например, RPS=7 у нас будет 57 раз за час! А вот P(13) = 0.00001, то есть 1 раз в час. Значит, можно рассчитывать на RPS=13. Формулу Пуассона можно использовать только для случайных обращений! Если у вас процесс устроен как-то регулярно — нужно использовать анализ сценариев. Например, когда все побежали в сервис после получения оповещения. Или когда в конце часа/дня обязательно нужно что-то сделать (отметиться, отправить коммит), или например все побежали сдавать домашку за 5 минут до дедлайна — тогда процесс не случайный, и нужно анализировать именно эти пики. Ну а вероятности по формуле Пуассона можно посчитать в одном из калькуляторов, например: https://stattrek.com/online-calculator/poisson (здесь x это k, а λ названа μ), или в Экселе через функцию POISSON. Применяйте инженерные методы в системном анализе!