[rabbitmq-discuss] Is there a channel publish throughput limit to a queue?

Matthias Radestock matthias at rabbitmq.com
Wed Oct 5 10:35:48 BST 2011


Allen,

On 05/10/11 10:13, Tim Fox wrote:
> On 04/10/11 19:00, Allen Kim wrote:
>> Thanks for your reply. I have been waiting for someone to reply.
>>
>> 1. They are persistent messages (disk writing speed could slow down that
>> much?)
>
> A good disk can sync at about 200-300 syncs per second. If each
> published message is being synced to disk you should expect that level
> of performance.

Alas rabbit doesn't generally fsync per message. Except when using tx 
and committing after every message, or using confirms and waiting for 
confirmation after every message. Or when the sending rate is quite low.

On my desktop I can get >7kHz persistent messages routed.

>> 2. NOT large message (it's around two lines 200-400 bytes)
>> 3. routing to only one queue
>> 4. NO transaction
>> 5. 3-4 consumers with basic.qos prefetch to 100.
>>
>> So, #1 and #5 matters?

Possibly. Though I'd still expect to see significantly higher rates.

You can approximate the above setup by running the MulticastMain test 
program we ship with the java client and invoking it with the options

-f persistent -s 400 -y 3 -u q -q 100 -r 3000

The last figure is the target send rate. Watch the reported latencies. 
If they are stable, try a higher rate. The max rate at which the 
latencies are stable is the max throughput Rabbit can handle in that 
configuration.

On my machine the above test can easily get 6kHz with RabbitMQ 2.6.1.


Matthias.


More information about the rabbitmq-discuss mailing list