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,

      saveetha

        • 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,

            saveetha