[jboss-user] [JBoss Cache: Core Edition] - Excessive ReentrantLock$NonfairSync objects
molsen-ee
do-not-reply at jboss.com
Mon Jun 30 13:42:41 EDT 2008
I'm using jboss-cache (jbosscache-core-2.1.1.GA) to implement a cache on a Tomcat/Apache environment and am having some issues with memory usage.
When I have the Isolation level set to anything other than "NONE" there is an excessive number of objects relating to ConcurrentHashMap's created and residing in memory. When 400k Nodes' are created there are over 7 million ConcurrentHashMap structures, approximately 16 per node. See the jmap histo dump below for the memory usage.
| num #instances #bytes class name
| --------------------------------------
| 1: 7058684 225877888 java.util.concurrent.ConcurrentHashMap$Segment
| 2: 7058738 169409712 java.util.concurrent.locks.ReentrantLock$NonfairSync
| 3: 7058684 116611080 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
| 4: 443647 35648184 [Ljava.util.HashMap$Entry;
| 5: 441170 35293456 [Ljava.util.concurrent.ConcurrentHashMap$Segment;
| 6: 441115 24702440 org.jboss.cache.lock.ReadWriteLockWithUpgrade
| 7: 441115 21173520 org.jboss.cache.UnversionedNode
| 8: 443357 17734280 java.util.HashMap
| 9: 441170 17646800 java.util.concurrent.ConcurrentHashMap
| 10: 441115 17644600 org.jboss.cache.invocation.NodeInvocationDelegate
| 11: 455905 11396456 [Ljava.lang.Object;
| 12: 460983 11063592 java.util.HashMap$Entry
| 13: 270774 11019496 [C
| 14: 442649 10623576 java.util.ArrayList
| 15: 441377 10593048 java.util.concurrent.ConcurrentHashMap$HashEntry
| 16: 441142 10587408 java.util.RegularEnumSet
| 17: 441116 10586784 org.jboss.cache.Fqn
| 18: 441115 10586760 org.jboss.cache.lock.IdentityLock
| 19: 441117 7057872 org.jboss.cache.util.concurrent.ConcurrentHashSet
| 20: 441115 7057840 org.jboss.cache.lock.LockStrategyRepeatableRead
| 21: 441115 7057840 org.jboss.cache.lock.ReadWriteLockWithUpgrade$WriterLock
| 22: 441115 7057840 org.jboss.cache.lock.ReadWriteLockWithUpgrade$ReaderLock
| 23: 441115 7057840 org.jboss.cache.lock.LockMap
|
The cache is initialized and populated in a tomcat request filter when the tomcat server is first started. The cache seems to work properly but it is consuming incredible amounts of memory.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4161564#4161564
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4161564
More information about the jboss-user
mailing list