Switch to AMQ 5.0 - release candidate is here:

http://people.apache.org/~chirino/apache-activemq-5.0.0-RC3/maven2/ org/apache/activemq/apache-activemq/5.0.0/ maven 2 repo: http://people.apache.org/~chirino/apache-activemq-5.0.0- RC3/maven2 maven 1 repo: http://people.apache.org/~chirino/apache-activemq-5.0.0- RC3/maven1

Message Producer flow control can be turned off in 5.0 - see: http:// activemq.apache.org/producer-flow-control.html - which is what's causing the slow down.

You can set size limits on memory, temp storage and store too - e.g:

<systemUsage>
                    <systemUsage>
                            <memoryUsage>
<memoryUsage limit="10 mb" percentUsageMinDelta="20"/>
                            </memoryUsage>
                            <tempUsage>
                                <tempUsage limit="100 mb"/>
                            </tempUsage>
                            <storeUsage>
                                <storeUsage limit="1 gb" name="foo"/>
                            </storeUsage>
                    </systemUsage>
            </systemUsage>




cheers,

Rob

http://open.iona.com/ -Enterprise Open Integration
http://rajdavies.blogspot.com/



On Nov 14, 2007, at 6:50 AM, Dan Washusen wrote:


Hey All,
I'm currently load testing our application with ActiveMQ and I'm seeing some strange behavior that I'm hoping someone can offer some assistance with.

Basically, there are 7 machines participating in the load test;
1. Running JMeter.
2. Running JMeter.
3. Running ActiveMQ 4.1.1. (mel1u105).
4. Running Producer (mel1u108).
5. Running Producer (mel1u109).
6. Running Consumer (mel1u110).
7. Running Consumer (mel1u111).
8. Running PostgreSQL (mel1u113).

ActiveMQ is allocated 1500Mb of memory running on a AMD64 X2, 3.5GB RAM, ~350GB Raid 5 type machine. For a period the producers are adding around 1000 messages per second to a queue until (according to the JMX console) there are around 600000 messages queued. At this point ActiveMQ basically
locks up and consumers slow down to a trickle.

I've attached CPU utilization graphs of each of the nodes and as you can see the node running ActiveMQ keeps consuming CPU time while all the other nodes basically idle (the other nodes do more than just interact with ActiveMQ).

I've tried this with both journaledJDBC and kahaPersistenceAdapter (see attached activemq.xml) to basically the same result. I was hoping that the persistence adapter would handle the peak periods when the producers are
creating messages at a much higher rate than they can be consumed.

So my questions are;
1. Is there a limit to the number of messages ActiveMQ can queue even with
disk based persistence?
2. Can someone suggest the configuration that would handle the above? It's very important that the producers be allowed to operate as normal (public facing) and if necessary we could have ActiveMQ ditch the messages it can't
deal with.

Also, please note that when the consumers can keep up with the producers
everything works fine.

http://www.nabble.com/file/p13740826/sar_cpu_mel1u105.sar.sadf.png
http://www.nabble.com/file/p13740826/sar_cpu_mel1u108.sar.sadf.png
http://www.nabble.com/file/p13740826/sar_cpu_mel1u109.sar.sadf.png
http://www.nabble.com/file/p13740826/sar_cpu_mel1u110.sar.sadf.png
http://www.nabble.com/file/p13740826/sar_cpu_mel1u111.sar.sadf.png
http://www.nabble.com/file/p13740826/sar_cpu_mel1u113.sar.sadf.png

http://www.nabble.com/file/p13740826/activemq.xml activemq.xml
--
View this message in context: http://www.nabble.com/performance- issues-with-slow-consumers-tf4802510s2354.html#a13740826
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Reply via email to