tags:

views:

244

answers:

2

Can somebody share an experience concerning scaling vertically the ActiveMQ? I'm particularly interested how performance is affected by:

  • NIO transport
  • option org.apache.activemq.UseDedicatedTaskRunner
  • disabling tightEncoding in OpenWire
  • using various type of Message Stores (including KahaDB)
+2  A: 

The items you mention above are all recommendations for scaling ActiveMQ as listed in the How do I configure 10s of 1000s of Queues in a single broker? page. I've utilized each of these tactics in various situations at customer sites and found that they help considerably.

  • The NIO transport is good for using less sockets when there are a high number of connections into a broker vs. the TCP transport. This efficiency can improve the overall performance of the broker.

  • I almost always recommend setting org.apache.activemq.UseDedicatedTaskRunner=false simply because it helps considerably with performance.

  • Disabling tight encoding is a subtle change and difficult to see the benefit. It depends on the types of messages that you're sending.

  • The KahaDB outperforms any of the other stores for persistent messaging with ActiveMQ, especially on the trunk. There is a bug that is fixed only on the trunk currently that causes a dramatic increase in persistent messaging performance that will be part of 5.3.1 and 5.4.

I know that this info isn't concrete, but I hope it still helps.

Bruce

bsnyder
Thanks. I was looking for exactly that kind of information. Regards.
Henryk Konsek
A: 

You should also take a look at the following article:

http://www.pepperdust.org/?p=150

We have implemented this with success to support thousands of concurrent connections.

Noctris