2 Replies Latest reply on Oct 28, 2010 10:23 AM by saveetha R

    HornetQ not better than Jboss messaging

    saveetha R Newbie

      Hi All,

      I am unable to get any performance improvement while using hornetQ messaging on Jboss AS over Jboss messaging.

      I have created simple example similar to the ones provided under hornetq-2.1.2.Final\examples\javaee directory. My aim is to calculate round-trip time taken while publishing 100,000 messages (Request-Reply scenario). I have used JMS client to send messages and MDB to receive the message and reply back.

      Sample works very fine with both Jboss Messaging and HornetQ messaging. But i can see time taken for HornetQ messaging is 3 times more than jboss messaging.

      Now i would like to know, what is the missing/mandatory configuration required to improve the performace while using HornetQ messaging. I am using default configurations.

      Following are the software details:

      OS - Linux (using linux AIO)

      HornetQ - 2.1.2 Final

      Application server - jboss-5.1.0.GA

      I am not seeing any problem with CPU and memory usage while running my example. Any pointers would be of great help to me. Please find the attached sample.

      Thanks and regards,


        • 1. Re: HornetQ not better than Jboss messaging
          Tim Fox Master

          This type of post comes up from time to time (too often ) , so it's worth searching through this forum for similar posts which have been posted before. A few points:


          1) Please always report issues with TRUNK, as described on the wiki page "how to report an issue"

          2) Try removing MDB and JCA from the picture, i.e. use a standard JMS consumer, not an MDB.

          3) Measuring round trip time doesn't really give a pointer to the performance of the system. In most cases it just measures your network round trip or disk latency (sync rate - we'll come to this later). For instance, if my network has a round trip time (latency) of 0.1 ms, that means I can send a maximum of 10000 messages per second with a single producer. This is irrespective of the messaging system, it's a limit of your network. For a proper test you would need to either use async, or scale up with many producers/consumers. Real applications generally have more than one producer.

          4) Your test isn't warming up. Microbenchmarks should always warm up before taking results. JIT can make a *huge* difference.

          5) You are sending persistent messages to a persistent queue. By default HornetQ will make sure message data is durably persisted before returning from the send. JBoss Mesaging by default uses HSQL which *does not sync*. This has been discussed *at length* on several other threads.


          Assuming you are using a normal disk what you should expect to see is around 200 msgs/sec. This is approx. the limit of a normal disk for write latency, and is a hardware limit. (I.e. your test will just measure the performance of your hardware not the messaging system)


          For some more sensible benchmarks please take a look at the performance wiki page.

          • 2. Re: HornetQ not better than Jboss messaging
            saveetha R Newbie

            Hi Tim,


            Thanks for the quick reply. Your response helped me a lot to find out key mistakes i have done.


            Applogies for posting the same question again on the forum.


            Thanks ans regards,