activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harish Sharma <hari...@yahoo-inc.com>
Subject Backlog data causes producer to slow down.
Date Tue, 20 Dec 2011 09:37:52 GMT
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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message