Hi,
I tried to reply to 
http://activemq.2283324.n4.nabble.com/Backlog-data-causes-producers-to-slow-down-tt3806018.html
 post . Because i am facing similar issue.
Whenever my consumer goes down and there is a data back log the production rate 
goes down significantly.
Moreover when my consumer is up again , the production rate goes down again and 
this cycle repeats itself.
Some Info :
I am using ActiveMQ 5.5.1 , KahaDB message store,  Producer flow control = 
FALSE , AsyncSend(true) , persistence = true and 
ConcurrentQueueStoreAndDispatch = true and false (tried both does not make much 
difference)
As i read in this post about cursors so i am using the default store cursor.

Here is snippet from broker.xml
destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry topic=">" optimizedDispatch="true" memoryLimit="1gb" 
producerFlowControl="false"  />
          <policyEntry queue=">" optimizedDispatch="true" memoryLimit="1gb" 
producerFlowControl="false" />
        </policyEntries>
      </policyMap>
    </destinationPolicy>

<systemUsage>
      <systemUsage sendFailIfNoSpace="true">
        <memoryUsage>
          <memoryUsage limit="20 gb" />
        </memoryUsage>
        <storeUsage>
          <storeUsage limit="500 gb" name="foo" />
        </storeUsage>
        <tempUsage>
          <tempUsage limit="1 gb" />
        </tempUsage>
      </systemUsage>
    </systemUsage>

I am using all the optimizations(i read from 
http://fusesource.com/docs/broker/5.4/tuning/index.html )
for producer , consumer and broker.
These optimizations are able to increase message production rate a bit but the 
main issue is the stability of the production rate.(why it goes down 10 times 
and then keep on going down with every time consumers goes down or goes up 
again).
I am trying to figure out the cause but unable to pinpoint the code in activeMQ 
which is causing this issue.
When i saw threads state in jconsole i found out that as soon as consumer start 
running , producer thread goes into wait state ( State: WAITING on 
java.util.concurrent.locks.AbstractQueuedSynchronizer ).I understand the queue 
these producers write to is blocking queue.But i  don't understand why 
consumers  are affecting producers while flow control is off and my store size 
is 500 GB and memory is 20GB .Why not producers are producing at a constant 
rate until my KahaDB store is full.

I really need help in this matter and deeply appreciate any help from you guys.

Thanks & Regards
Harish Sharma

Reply via email to