Welcome! Log In Create A New Profile

Advanced

Serving stale items from cache

Erik Wickstrom
September 01, 2011 01:50AM
I have a web application where the objects are expensive to generate,
yet each individual object is accessed infrequently (a few times a
week). The dataset in total is about 24 GB.

Can Nginx be configured to cache these items for a short amount of
time (say 20 minutes), but also have a relatively long (i.e. 7 days)
stale setting so clients will always get a fast response (but at the
same time will trigger an update of the cached item).

proxy_cache_path /var/lib/nginx/cache levels=2:2:2
keys_zone=staticfilecache:512m inactive=7d max_size=25000m;
# serve stale cache when the cache is updating, or there is a timeout or error.
proxy_cache_use_stale timeout updating error invalid_header http_500
http_502 http_503 http_504;
proxy_cache_valid 200 20m;

My understanding is that the by setting proxy_cache_path to
inactive=7d, cached items will be kept for 7 days and available to be
served as stale objects. Basically any request that comes in after 20
minutes will get a stale object from the cache for up to 7 days (and
at the same time refresh the cache with the latest version from the
backend).

However, in testing, it appears that stale objects are not returned,
but instead a fresh request is made to my appservers. Here is some
sample data from my logs (Notice the $upstream_cache_status and
$request_time at the end of the log line)

71.111.3.11 - - [31/Aug/2011:19:44:26 +0000] "GET /?p=3093 HTTP/1.1"
200 3849 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215
Safari/535.1" - EXPIRED 15.789
71.111.3.11 - - [31/Aug/2011:19:44:42 +0000] "GET /?p=3093 HTTP/1.1"
200 3849 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215
Safari/535.1" - HIT 0.000
71.111.3.11 - - [31/Aug/2011:19:51:02 +0000] "GET /?p=3093 HTTP/1.1"
200 3849 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215
Safari/535.1" - HIT 0.000
71.111.3.11 - - [31/Aug/2011:20:01:50 +0000] "GET /?p=3093 HTTP/1.1"
200 3849 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215
Safari/535.1" - HIT 0.000
71.111.3.11 - - [31/Aug/2011:21:03:56 +0000] "GET /?p=3093 HTTP/1.1"
200 3851 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218
Safari/535.1" - EXPIRED 0.725
71.111.3.11 - - [31/Aug/2011:21:14:55 +0000] "GET /?p=3093 HTTP/1.1"
200 3851 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218
Safari/535.1" - HIT 0.000
71.111.3.11 - - [31/Aug/2011:21:54:18 +0000] "GET /?p=3093 HTTP/1.1"
200 3833 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218
Safari/535.1" - EXPIRED 0.856
71.111.3.11 - - [31/Aug/2011:22:01:25 +0000] "GET /?p=3093 HTTP/1.1"
200 3833 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218
Safari/535.1" - HIT 0.000
71.111.3.11 - - [01/Sep/2011:00:02:01 +0000] "GET /?p=3093 HTTP/1.1"
200 3847 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1)
AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218
Safari/535.1" - MISS 11.019


Basically I'm trying to keep my cache warm, without overwhelming my
app servers. Is this doable?

Thanks!
Erik

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Serving stale items from cache

Erik Wickstrom September 01, 2011 01:50AM

Re: Serving stale items from cache

Andrew Alexeev September 02, 2011 12:00PM

Re: Serving stale items from cache

stonor September 22, 2011 04:03PM

Re: Serving stale items from cache

Erik Wickstrom September 22, 2011 05:10PM

Re: Serving stale items from cache

Brian Akins September 22, 2011 07:06PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 305
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready