Hello developers,

I have been doing a nifty little cache monitor on www.curriki.org which is 
still running xwiki 1.5.4.

It can show the entries and capacity of the two xwiki caches, pageExistCache 
and the document cache which sound pretty central.

Not surprisingly, they're both full on our production server.
name    entries capacity        
pageExistCache  10000   10000   
cache   3000    3000    
The caches are using OSCache (through "OSCacheCache").

I've been trying to get a real statistical count but there I kind of failed 
thus far.

I can use the StatisticListenerImpl which gives fairly high numbers:
> StatisticListenerImpl: Hit = 9583563 / 1320251374, stale hit = 0 / 538, miss 
> = 8541 / 17175236, flush = 27348, entries (added, removed, updates) = 
> 25457741, 0, 7678101
these numbers are integers, and might actually be too small for the 2billions 
limit of an int, they are static (so count "all the OSCache instances").

What I would like to get is the "eviction rate" but I do not know how to 
compute it.
That is, I wish to read the number of cache-entries which are thrown away 
because the cache is full and others come in.

Once I can have it, I can start tuning (cache size, less greedy algorithms, 
...) and measure the effect of such tuning. We have plenty of RAM space to 
accommodate the cache but we should use this well.

The big annoyance with this process is that it can only run on our production 
server. So thus far I did not dare register a CacheListener in groovy fearing 
it would suddenly be slow.

Has anyone used a different strategy or tool?
I'm happy to post my little monitor script.

thanks in advance.

paul
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to