C
CTO: Порядок из хаоса
@cto_order_from_chaos330 подп.
505просмотров
24 октября 2025 г.
Score: 556
Сегодня поговорим про закон Литтла (Little’s Law). И совсем немножко про математику. Формула простая: L = λ × W L — среднее количество элементов в системе (например запросов в обработке или элементов в очереди) λ — средняя скорость поступления элементов (запросов в секунду) W — среднее время, которое элемент проводит в системе Формула — проще некуда, но очень полезная. Сколько запросов обрабатывается одновременно? Дано: λ = 100 req/s, W = 200ms L = 100 × 0.2 = 20 запросов в системе одновременно Теперь вы можете посчитать сколько к примеру на сервере будет съедено памяти и сколько используется коннектов к БД Какая средняя задержка при заданной нагрузке? Дано: λ = 50 req/s, L = 5 (лимит воркеров/соединений) W = L/λ = 5/50 = 0.1s = 100ms - средняя задержка. При условии что воркеры справляются можете писать в SLA 100ms. (но сначала дочитайте) Какая пропускная способность у системы? Дано: W = 300ms, L = 10 (лимит воркеров/соединений) λ = L/W = 10/0.3 = 33.3 req/s максимум. Всего за минуту мы с вами насчитали вон сколько полезного, но закон Литтла сам по себе не учитывает насколько загружена система. Если поверх него добавить простейшую модель очереди (M/M/1), получится интересная зависимость. Детали опущу, много математики, сразу дам выводы. При утилизации в 50% средняя задержка вырастет в 2 раза от базовой. 75% — в 4 раза. 90% — в 10 раз. 99% — в 100 раз. При 100% загрузке — очередь неограниченно растет. И это при условии идеализированной модели. В реальности и средняя и p95/p99 растет сильно быстрее. Теперь вы знаете как посчитать нагрузку и почему нужно оставлять запас по утилизации серверов. (и заложите правильный запас для SLA)
505
просмотров
1664
символов
Нет
эмодзи
Нет
медиа

Другие посты @cto_order_from_chaos

Все посты канала →
Сегодня поговорим про закон Литтла (Little’s Law). И совсем — @cto_order_from_chaos | PostSniper