> Of course I know the way how to increase
Java's memory space/heap space. The
> problem is that this will not help here. Simply if I do so and then create
> 100 millions of pages on one run I will still get to the same issue just
> it'll take a lot longer.
You won't reach 100 time the memory taken by downloading a 100 million pages after you
download a million pages. The caches have limits and you should measure how much memory in
your setting is needed to reach that limit. Tests such as yours, after they reach the max,
will get slower because of the DB access following the cache eviction; they are not very
realistic under that point of view.
The best way to follow this is to use JMX and get a graph of the cache values, you should
see maximum be reached after a while.
At curriki, we have adjusted the caches to be a bit bigger and we do reach the maximum
(100'000 if I remember well, for the document cache) after about an hour after the
restart. Then things get pretty stable with our max 8G of memory.
We are considering to raise all that since hardware has about 32G but that'll be for
later.
Our app servers (Sun Java App Server or Tomcat) can stay up for several months.
Reporting on this simulation to the list is certainly interesting.
We've started an amount of monitoring in production using Zabbix but we have not yet
had the time find the "keys" that would access the JMX cache sizes using Zabbix
which has its own language to describe JMX bean properties. Certainly something worth
sharing.
In your simulation case, jConsole is probably enough.
Paul