Re: Лимиты: leaky bucket

Станислав server_inc на list.ru
Пн Май 28 20:32:37 UTC 2012


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