Nginx cache is slow

Maxim Dounin mdounin at
Fri Aug 19 08:33:37 UTC 2011


On Fri, Aug 19, 2011 at 03:58:09AM -0400, ddarko wrote:

> Nginx 1.1.0
> location / {
> 	uwsgi_cache tna;
> 	uwsgi_cache_use_stale error timeout http_500;
> 	uwsgi_cache_valid  any  10m;
> 	uwsgi_cache_key $request_uri;
> 	include /etc/nginx/params_uwsgi;
> 	uwsgi_intercept_errors off;
> 	uwsgi_pass unix:/tmp/uwsgi-tna.sock;
> }
> I made a simple test: $ ab -c 10 -n 10000 http://.... on localhost.
> I am sure that the request is sent to uWSGI only once and is then
> cached.
> result: Requests per second:    3712.93 [#/sec] (mean)
> Meanwhile, on the same machine and the same nginx for static file
> reaches the result:
> Requests per second:    4826.62 [#/sec] (mean)
> How is that static files are faster to 30%! from the cache based on
> static files ?

Cached response require additional reading of original response 
headers, as well as calculating cache key and parsing the headers 
in question (which may be an issue on cpu-bound servers).  So I 
would expect it to be somewhat slower than plain static files.

While 30% looks a bit too many, it certainly depens havily on 
response sizes involved as well as type of a limiting factor (i.e. 
cpu or disk bound).  In worst case I would expect cache to be 2x 
slower compared to static files (though it's unlikely to happen in 
real life).

Maxim Dounin

More information about the nginx mailing list