Hi,

I am heap profiling my application that uses JBoss Cache 1.2.4SP1 and am 
finding that the eviction seems to be using quite a bit of memory.  In 
particular, here are snippets of my hprof output:


  | SITES BEGIN (ordered by live bytes) Fri Feb 10 09:54:18 2006
  |           percent         live       alloc'ed  stack class
  |  rank   self  accum    bytes objs   bytes objs trace name
  |     1 17.58% 17.58% 13600272   17 13600272   17 49313 java.lang.Object
  |     2  4.39% 21.97%  3400272   17 3400272   17 49300 java.lang.Object
  | 
  | TRACE 49313:
  |     
EDU.oswego.cs.dl.util.concurrent.BoundedBuffer.<init>(BoundedBuffer.java:46)
  |     org.jboss.cache.eviction.Region.createQueue(Region.java:62)
  |     org.jboss.cache.eviction.Region.<init>(Region.java:70)
  |     
org.jboss.cache.eviction.RegionManager.createRegion(RegionManager.java:61)
  | 
  | TRACE 49300:
  |     
EDU.oswego.cs.dl.util.concurrent.BoundedBuffer.<init>(BoundedBuffer.java:46)
  |     org.jboss.cache.eviction.LRUAlgorithm.<init>(LRUAlgorithm.java:38)
  |     
org.jboss.cache.eviction.LRUPolicy.getEvictionAlgorithm(LRUPolicy.java:122)
  |     org.jboss.cache.eviction.LRUPolicy.configure(LRUPolicy.java:225)
  | 

As you could see, in the first trace, the buffer created by the eviction Region 
code is allocating more than 13M of memory just for the queue.  Digging further 
and looking at the source for org.jboss.cache.eviction.Region and 
EDU.oswego.cs.dl.util.concurrent.BoundedBuffer I see it is creating an Object[] 
array with 200000 elements!

In the 2nd trace the LRUAlgorithm class is using more than 3 megs of memory, 
when it allocates an Object[] array of 50000 elements.

Is eviction expected to use so much memory?  Might I also suggest to change the 
implementation to use some kind of data structure that grows and shrinks as 
necessary so it would not consistently use so much memory.

Or do I somehow have eviction misconfigured?  Below is a snippet of my config 
file:


  | <attribute 
name="EvictionPolicyClass">org.jboss.cache.eviction.LRUPolicy</attribute> 
  | 
  | <attribute name="EvictionPolicyConfig">
  |   <config>
  |     <attribute name="wakeUpIntervalSeconds">30</attribute>
  |       <!--  Cache wide default -->
  |       <region name="/_default_">
  |          <attribute name="maxNodes">10000</attribute>
  |          <attribute name="timeToLiveSeconds">600</attribute>
  |       </region>
  |                             
  |       <region name="//net/sf/hibernate/cache/StandardQueryCache">
  |         <attribute name="maxNodes">10000</attribute>
  |         <attribute name="timeToLiveSeconds">600</attribute>
  |       </region>
  | 
  |   </config>
  | </attribute>
  | 

Thank you,
Daniel

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922944#3922944

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922944


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to