Re: в limit req zone req ratio это СРЕДНЯЯ скорость или число для подсчета минимальног интервала между запросами?
Konstantin Svist
fry.kun на gmail.com
Вс Май 30 21:37:34 MSD 2010
On 05/30/2010 12:44 AM, vgoncharov wrote:
> В нем утверждается, что эта средняя скорость нифига не средняя, а это на самом деле минимально допустимый интервал времени между двумя запросами, который вычисляется как 1/(типа_средняя_скорость).
>
В двух словах: именно так.
А точнее, вот вам более менее полный алгоритм (позавчера по коду лазал):
Если нету burst, всё просто:
При скорости #r/s, если запрос пришёл быстрее чем интервал 1/# с тех пор
как последний запрос был разрешён, то новый запрос выбрасывается.
Если burst есть, то немного сложнее:
Скажем скорость задана 1r/s и первый запрос пришёл в 0ms. Значит время
разрешения следующего - 1000ms. Если второй запрос пришёл в 750ms, и
delay включен, то этот 2й запрос будет задержан до 1000ms. Если есть
nodelay, то пропускаем 2й запрос и ставим время разрешения следующего
запроса на 1250ms.
Размер burst - это сколько запросов разрешается так всунуть.
Подробная информация о списке рассылки nginx-ru