I have recently upgraded our modperl based web server
to use Cache::SharedMemoryCache. The code is changed very
little from in the docs - retrieve an entry from the 
cache if it is there, otherwise get an entry from the
database and store it in the cache.

However, after about fifteen minutes of moderate use - probably
with about 50 2-entry arrays stored in the cache and about
10000 or so cache hits, the whole system ground to a halt.

You could do $cache=Cache::SharedMemoryCache->new() fine,
but doing:

$cache->set('foo','bar');

would never return.

The server is a Sun E220 running Solaris 7, with Apache 1.3.20
and modperl 1.26

The same configuration on a Linux 2.4 box works fine - over a
soak test of many hundreds of thousands of hits.


If anybody has any ideas, I'd be glad to hear from you!


In desperation, I have switched to Cache::FileCache - which
works fine, but I would be interested to know, for a system
that handles several hundred database queries per minute:

- What is the performance difference between SharedMemoryCache
and FileCache?

- What is the performance difference between FileCache and a
local MySQL database (on a simple indexed query)?

- What about with a LAN connected MySQL database running on
its own machine?

- The SharedMemoryCache docs say that it shouldn't be used
for "large" amounts of information. What size would be considered
"large" on a machine with 4GB RAM?


many thanks,


Chris Allen
[EMAIL PROTECTED]

Reply via email to