> > Again, thank you, Rob. This is great, > > > * Cache::FileCache (uses Storable) > > * Cache::SharedMemoryCache (uses Storable) > - Can specify the maximum cache size (Cache::SizeAwareFileCache) and/or > maximum time an object is allowed in the cache > - Follows the Cache::Cache interface system
I run / wrote ExitExchange (www.exitexchange.com). I was using Cache::SharedMemoryCache on my system. I figured, "Hey, it's RAM, right? It's gonna be WAY faster than anything disk-based." (I was originally using IPC::Shareable and the caching model from the Eagle, but IPC::Shareable broke after like, 0.50 or something so it makes NEW shm segments with EVERY write.) Then I saw your benchmarks... boy was I wrong! My statistics system (count.exitexchange.com) is a dual PIII/1GHz, w/ 2GB of RAM. I'm serving approximately 2 million server-parsed, mod_perl generated hits/day. Until the other day, the system load average was usually between 12 and 21 (!), and response times were in the 3-10 second range. <sigh> I've been sweating and worrying about optimizations in an entirely different part of the system than the webserver, figuring I missed something in THAT part... Based on your benchmarks, I simply s/SharedMemoryCache/FileCache/ and tried it again. For the past two days, I've been at .25 second response times (and that's including the overhead of loading and executing the app that makes the req) and server load is < 1, consistently. In short, your work has saved my ass. THANKYOUTHANKYOUTHANKYOUTHANKYOU and Merry Christmas! L8r, Rob #!/usr/bin/perl -w use Disclaimer qw/:standard/;