Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5334

Low throughput with thousands of queues

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 0.24
    • None
    • C++ Broker, JMS AMQP 0-x
    • Broker: Linux 2.6.32 64bit
      Client: Windows 7, Java 1.7.0_21 64bit

    Description

      I have an use case where I need to create hundreds of thousands of queues,
      each one subscribed to a different topic (therefore I have as many topics
      as queues).
      I set up a test with a single producer generating data on a randomly
      chosen topic, and a receiver retrieving data from the queues (and throwing
      it away).

      I'm using the JMS api, and doing the obvious thing makes the throughput
      drop dramatically from 10k msg/sec with a single topic/queue (around the
      top my network adapter can sustain) to 20 msg/sec with 100k topics/queues.
      I found out that I can recover performance by using more JMS sessions and
      connections - e.g. create 4 connections with 100 sessions each, and
      randomly distributing the receiving queues on them.
      This however is less than ideal, since with the JMS client a thread is
      created for each session, I can manage the workload with 1 thread only when it's over a single queue.

      Attachments

        1. JMSGenerator.java
          6 kB
          Flavio Pellanda
        2. JMSReceiver.java
          5 kB
          Flavio Pellanda

        Activity

          People

            Unassigned Unassigned
            flavio Flavio Pellanda
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: