3 Replies Latest reply on Nov 19, 2001 10:55 AM by John Baker

    JBossMQ Performance and Memory

    Richard Hofer Newbie

      Hi everybody,

      Since one week i'm doing some heavy load tests on JBossMQ and I made some strange experiences. My environment is a Publisher App which sends msg as fast as possible on a JMS Provider (JBossMQ or SonicMQ). A mdb works as subscriber and counts a int up through a entity bean in the db.

      Firts strange exp.) if I do the test all on the same pc, i have a delivery rate of 300-400 msg/s and a receiver rate of 190-200 msg/s. Because i deliver to fast, the memory of jboss increase like a nigthmare and crashs (>512m)! is there no flowcontrol or disk regulation, like sonic it has?

      Second exp.) if I publish through the net (100mbit) i get a constant rate of 5 msg/s for each thread and the cpu's are not used! why that? what do i have to do to make it faster?

      my statement is, that the jbossmq is not usable in a business environment! other opinions? other experience?

      (jboss and sonic is much better than jboss and jbossmq!)

      cheers richard

        • 1. Re: JBossMQ Performance and Memory
          Hiram Chirino Expert

          The memory issue has been resolved in the CVS HEAD version in case you whish to re-evalute.

          • 2. Re: JBossMQ Performance and Memory
            Jukka Lehti Newbie


            since it seems that there are a couple of Beta-2 issues fixed in CVS, could anyone give me a hint when Beta-3 could come out? Thanks in advance.

            • 3. Re: JBossMQ Performance and Memory
              John Baker Newbie

              The inefficient CPU usage is I believe a limitation of most java VM implementations. Each thread is still running inside a single process so often doesn't take advantage of multiple CPUs. The usual workaround for this is to run multiple instances of the program in different VMs. For this to work a program must be designed to expect this kind of rollout. For instance any data access must be designed to cope with other processes modifying it's data. File access/Memory caching etc is suspect in this situation. A transactional data source such as JDBC must be used to avoid corruption. I think JBoss EJB container is designed to allow this without problem. I am not sure about the JBossMQ service. Can this be done? Try it and see.