4 Replies Latest reply on Feb 7, 2008 7:51 AM by haagenhasle

    Tuning the ESB

    haagenhasle

      I've been running some simple tests with JMeter today, just to check the response-time of the services I deploy on my ESB. I've tried to modify some configuration-settings to enhance the performance of the ESB, and the results of my tests surprised me..

      I have increased the property org.jboss.soa.esb.jms.connectionPool in the file server\default\deploy\jbossesb.sar\jbossesb-properties.xml from 20 to 200. I'm using the jms-jca-provider in my jboss-esb.xml file. I tried to change the maxThreads-attributes in the jboss-esb.xml file, and ran several tests with different settings. (I tried setting maxThreads to 3, 6, 13 and 20.)

      The setup of JMeter was that I ran 20 threads that used 7 services on the ESB, and every thread made 10 calls to each service. (For a grand total of 200 invocations of each service.)

      What surprised me was that the results showed that I got the lowest responsetime when I used maxThreads="3". I was thinking that maxThreads should be set to 20, to reflect the number of threads I ran JMeter with. But obviously this was not the case.

      I was hoping that someone could tell me a little bit more about tuning the ESB. Are there any other settings I can tweak, to increase performance? (JBoss ESB-specific or JBoss AS-specific?) How should the maxThreads in jboss-esb.xml relate to the org.jboss.soa.esb.jms.connectionPool property (if at all..)? Any other hints or suggestions?

        • 1. Re: Tuning the ESB
          haagenhasle

          If I can provide any more information about this to clarify what I have done or what I want to achieve, please let me know!

          Regards, Haagen

          • 2. Re: Tuning the ESB
            viniciuscarvalho

            Have you got any success on that mate? I'm having the same problems here.
            Our project is going to production and now it's time to squeeze the server for better performance.

            Well, I was having an average processing time of 8 seconds per message with the default configuration of 1 thread per listener.
            But, when I sent 10 simultaneous messages, they were consumed in a serialized way, the last one was consumed almost 10 seconds after the first. So I changed the maxThreads to 10 at both listeners (gateway and non gateway) on my first service.

            Now messages are consumed almost at the same time, less than 1 second from the first to the last. But, the processing time jump to over 25 seconds. I tried to increase the the maximum number of threads at other services, but nothing is working.

            I'm still conducting some tests here, but it seems that the problem lies at the CBR. Analysing the log, I've found out that from the first action at my chain, to the last before CBR, the time was less than 1 sec. Then, for over 15 seconds, nothing was displayed at the console, after that, messages start to be picked-up by the services they've been routed to.

            I'm replacing the CBR by a static routing just for testing purposes. That's all I have so far, if you got any other info...

            Regards

            • 3. Re: Tuning the ESB
              mvecera

              Hello,

              I'm coping with similar problems these days. There are logged several bugs in jira.jboss.com concerning your problems:
              JBESB-1460 - bad interpretation of maxThreads parameter, should have bigger impact on performance when fixed.
              JBESB-1504 - poor performance of CBR.

              If you have any particular problems, don't be shy, log a bug, attach your deployment and steps to reproduce.

              Thanks and stay tuned!

              • 4. Re: Tuning the ESB
                haagenhasle

                 

                "mvecera@redhat.com" wrote:
                If you have any particular problems, don't be shy, log a bug, attach your deployment and steps to reproduce.

                Thanks and stay tuned!


                I would have logged a bug if I had found one, but I'm really just asking for some guidance. :-)

                Noone seems to know much about this, so I'm just doing my best and trying to figure things out on my own. If I learn something valueable I will post it here.

                Regards, Haagen