Re: Лимиты: leaky bucket

Валентин Бартенев ne на vbart.ru
Пн Май 28 21:05:37 UTC 2012


On Tuesday 29 May 2012 00:32:37 Станислав wrote:
> 27.05.2012 9:05, Валентин Бартенев написал:
> > On Sunday 27 May 2012 08:25:55 Станислав wrote:
> > [...]
> > 
> >> burst - это объем ведерка. В случае с burst=5 в ведерко поместиться не
> >> больше чем 5 запросов, все остальные умрут,
> >> а rate=3r/s иметься ввиду, что на протяжении 1 секунды с ведра вытекут
> >> (будут обработаны) 3 запроса ?
> > 
> > Вытекут - да. А обработаны могут быть и сразу, если задан nodelay.
> > 
> > Формулировка "на протяжении 1 секунды" не совсем точна, не отражает
> > сути происходящего. Никакого периода в 1 секунду в алгоритме нет.
> > 
> > Основное заблуждение у многих возникает тут в том, что они полагают,
> > что если написано 3r/s и пользователь прислал сразу три запроса, то в
> > лимит они никаким образом не попадут.
> > 
> > Представьте себе rate=3r/s burst=0 - в таком случае будут отклонятся
> > все запросы, которые поступят ранее чем через ~333 миллисекунды после
> > поступления предыдущего успешного (т.е. не отклоненного запроса).
> > 
> > Пользователь может послать "на протяжении 1 секунды" 3 запроса, но с
> > интервалом в 10мс, и несмотря на то, что он в эту секунду (да хоть
> > вообще в этот день) запросов посылать больше не собирается, два при
> > вышеуказанных параметрах (а именно burst=0) будут отклонены.
> 
> Спасибо за развернутый ответ!
> 
> По-моему я понял. Поправте меня пожалуйста если я неправ.
> 
> В лимитах имееться ввиду "на сколько быстро будут проходить запросы один
> за одним".
> 
> На примере: rate=5r/s burst=0
> будут отклонятся все запросы, которые поступят ранее чем через ~200
> миллисекунд после поступления предыдущего успешного.
> 
> Так?
> 

Так.

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru