1 Reply Latest reply on Nov 15, 2002 8:09 AM by adrian.brock

    Subscription performance

      I am in the process of load testing JBOSS MQ 3.0.4 for an upcoming project I have ... The problem I am having relates to the rate at which messages can be published compared to the rate at which they can be consumed ...

      In my experiment, I have two seperate boxes publishing (aggregate publishing rate across the two boxes of 650 msgs/sec) to a machine that is only running JBOSS MQ ... Lastly, I have a fourth box that is only running a Java application that is a subscriber ...

      My problem is that the rate of delivery to the subscriber is ~550 msgs/sec which means that it begins to fall behind the stream from the two producers ... after a while, the JMS server crashes with OutOfMemoryErrors ... Adjusting the High and Max memory marks only makes the problem worse because once the messages start getting persisted to disk, performance takes a nosedive ...

      My question is: should the JMS server be giving a higher priority to delivering the messages to my subscribers than accepting messages from my publishers (in an effort to keep queue lengths at zero)?

      Neither the JMS server nor subscriber box becomes CPU bound in my experiment so I can't see why the messages aren't being pumped out to the subscriber faster ...

      Any thoughts?

        • 1. Re: Subscription performance

          I recently committed some improvements for this
          in the developement branch. It still does not
          have any flow control like you suggest :-(

          The main problem is due a server-wide lock when
          writing/reading messages to disk. This causes a
          stall when memory is tight and some of the cache needs to
          be flushed to disk.
          This is gone in my version.

          It is quite a major change so it is only in
          jboss-4.0.0alpha for testing at the moment.

          If I get some positive feedback, I will backport
          it for jboss3.0.5

          You can only download jboss4 from cvs

          cvs co jboss-head

          FYI: On my 1Ghz XP machine (high=50M max=60M)
          I can get a throughput of (approx figures)

          file persistence
          500,000 msgs/hour (persistent)
          2,700,000 msgs/hour (non-persistent)

          jdbc2 persistence
          1,000,000 msgs/hour (persistent)
          2,500,000 msgs/hour (non-persistent)

          Regards,
          Adrian