Hi All,
I'm using JBoss cache in my project, recently I have enabled replication. While
putting the system through the load of 9K users with each user modifying the state every
10 sec found that there is sharp increase in amount of memory being consumed by the
process. After few hours process raised out of Memory from old generation. Memory
histogram of the process shows following two classes taking lots of heap space.
1: 7023853 224763296 java.lang.ThreadLocal$ThreadLocalMap$Entry
2: 7022005 168528120
java.util.concurrent.locks.ReentrantReadWriteLock$Sync$HoldCounter
I'm have 3 nodes in cluster. I'm using async replication and my configuration file
is as follows:-
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
name="jboss.cache:service=Cache">
<attribute name="TransactionManagerLookupClass">
org.jboss.cache.transaction.DummyTransactionManagerLookup
</attribute>
<attribute name="IsolationLevel">REPEATABLE_READ</attribute>
<attribute
name="LockParentForChildInsertRemove">false</attribute>
<attribute name="CacheMode">REPL_ASYNC</attribute>
<attribute name="useLockStriping">false</attribute>
<attribute name="UseReplQueue">false</attribute>
<attribute name="ReplQueueInterval">0</attribute>
<attribute name="ReplQueueMaxElements">0</attribute>
<attribute name="InactiveOnStartup">true</attribute>
<attribute
name="ClusterName">TreeCache-Cluster</attribute>
<attribute name="ClusterProperties"></attribute> -->
<attribute name="ClusterConfig">
<config>
<UDP mcast_addr="228.1.2.3" mcast_port="12345"
ip_ttl="64"
ip_mcast="true" mcast_send_buf_size="150000"
mcast_recv_buf_size="80000"
ucast_send_buf_size="150000"
ucast_recv_buf_size="80000" loopback="false"
bind_addr="192.168.1.19"/>
<PING timeout="2000" num_initial_members="3"
up_thread="false" down_thread="false" />
<MERGE2 min_interval="10000" max_interval="20000" />
<FD_SOCK />
<VERIFY_SUSPECT timeout="1500" up_thread="false"
down_thread="false" />
<pbcast.NAKACK gc_lag="50"
retransmit_timeout="600,1200,2400,4800"
max_xmit_size="8192" up_thread="false"
down_thread="false" />
<pbcast.STABLE stability_delay="1000"
desired_avg_gossip="50000" max_bytes="400000"
up_thread="false" down_thread="false"/>
<FRAG frag_size="8192" down_thread="false"
up_thread="false" />
<pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
shun="true" print_local_addr="true" />
<pbcast.STATE_TRANSFER up_thread="true" down_thread="true"
/>
</config>
</attribute>
<!-- Whether or not to fetch state on joining a cluster -->
<!-- <attribute
name="FetchStateOnStartup">false</attribute>
<attribute name="FetchInMemoryState">false</attribute>
-->
<attribute
name="InitialStateRetrievalTimeout">50000</attribute>
<attribute name="SyncReplTimeout">70000</attribute>
<!-- attribute name="LockAcquisitionTimeout">50000</attribute
-->
<!-- Name of the eviction policy class. -->
<attribute name="EvictionPolicyClass" />
</mbean>
</server>
Any help will be highly appreciated.
Thanks,
Nishi
Member of the CSR plc group of companies. CSR plc registered in England and Wales,
registered number 4187346, registered office Churchill House, Cambridge Business Park,
Cowley Road, Cambridge, CB4 0WZ, United Kingdom
Show replies by date