ngx http limit req : burst=0 cannot support more than 1000 RPS

Maxim Dounin mdounin at mdounin.ru
Wed Apr 16 14:40:13 UTC 2014


Hello!

On Wed, Apr 16, 2014 at 10:30:24AM -0400, Shrirang wrote:

> I am using "ngx_http_limit_req" module. After going through the code I see
> that if "burst = 0" (i.e. not specified) then maximum rate limiting that can
> be offered is 1000 RPS only. I have seen this in my stress test too.
> I didn't see this in any documentation. Want to clarify if this is really
> true or I missed something?
> 
> ---
> Reasoning :
> 1. Module expects uniform request arrival. Any request that breaks the
> uniformity, will get rate limited.
> 2. Configured rate = 1000r/s. This means 1 request-per-ms.
> 3. If more than 1 request is received in same "ms" time, then only 1 request
> is served. All other requests are rate limited.
> 4. For above configuration, if "burst=X" is configured, then "X" number of
> requests are served while requests more than that will get rate limited.
> 5. If Configured rate = 2000r/s (i.e. 2 request-per-ms). If "burst=0" (i.e.
> not specified), then too it supports only 1-request-per-ms rate. If 3
> requests are received in same "ms" then only 1 is served and other 2 are
> rate limited.

Yes, the module uses time with millisecond resolution, and hence 
rates higher than 1 request per millisecond won't work without 
burst specified.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list