Как nginx считает текущую скорость при работе limit req?

Vanya nginx-forum на nginx.us
Сб Янв 9 10:44:38 MSK 2010


И все-таки я побуду утренним занудой. Теоретический вопрос.

вот к примеру имеем в конфиге

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=30r/s;


Допустим на сервер приходят 9 запросов с промежутком 50ms

С точки зрения математики и сферического коня в вакууме, фактическая частота запросов при этих условиях составит: 

1/50ms = 20 запросов в секунду.

А с точки зрения nginx`a? 

Почему я задаю такой вопрос? Меня бы это не волновало, но. 
Я в качестве эксперимента выставил лимит на частоту 30r/s, далее иду на тестовую страницу, на которой около 15-ти картинок, стилей и прочих элементов (т.е. в сумме, при одном рефреше этой страницы, браузер сгенерирует не больше 16 запросов).
И что же я получаю в error логе? Я все равно получаю якобы превышение частоты и дилэи (от 1 до 3).

А если усложнить вопрос и представить что несколько запросов шли с разным интервалом но уложились в одну секунду? По какой формуле нгинкс вычисляет скорость для решения об ограничении n+1-го запроса? Текущее среднее?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,39003,39003#msg-39003




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