Skip to content
Various scripts I've been using to benchmark queue servers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
python
.gitignore
README

README

queueing-playground
===================
  Phillip Pearson <pp@myelin.co.nz>
  http://github.com/myelin/queueing-playground

Here's some code I've been using to experiment with RabbitMQ recently.

Dependencies
============

py-amqplib: http://barryp.org/software/py-amqplib/

QPid: http://cwiki.apache.org/qpid/

Usage
=====

Create a config.txt file, like this, in the same directory as this README:

  host = hostname of your rabbitmq server
  port = 5672
  user = your rabbitmq username
  password = your rabbitmq password
  exchange = tempexch
  queue = tempqueue
  durable = true
  ssl = false

Then try running some of the Python scripts in python/qpid and
python/amqplib.

Try changing the 'durable' line to 'durable = true' (and changing the
'exchange' and 'queue' values to something like 'durexch' and
'durqueue', as Rabbit won't let you redeclare the existing exchange as
non-durable) to get a durable queue.

Results
=======

colinux VM using one core of a Mobile Core 2 Duo, running Debian Etch,
RabbitMQ 1.4.0-1 and Erlang 11.b.2-4:

  py-amqplib 0.3

    producer and Rabbit on same VM, non-durable queue: ~1200-1300
    msgs/sec produced.

    basic.consume consumer and Rabbit on same VM, non-durable queue:
    ~150-180 msgs/sec consumed.

    producer, basic.consume consumer and Rabbit on same VM,
    non-durable queue: ~1000 msgs/sec produced, ~50 msgs/sec consumed.

  QPid 1.0 M2

    Couldn't get basic.consume working.  basic.get consumer consumes
    about 25 msgs/sec but without using much CPU, so I could run 20 at
    a time plus the py-amqplib producer (above) to produce and consume
    about 300 msgs/sec continuously.

Athlon XP 2800+ with 1G RAM, running Debian Etch, RabbitMQ 1.4.0-1 and
Erlang 1:12.b.3-dfsg-4:

  py-amqplib 0.5

    producer and Rabbit on same box, non-durable queue: 2000-3000
    msgs/sec produced (initially ~3000, dropping to ~2000 after the
    number of messages in the queue gets up around 20k).

    basic.consume consumer and Rabbit on same box: ~2100 msgs/sec
    consumed.

    producer, one basic.consume consumer and Rabbit on same box,
    non-durable queue:

      one run: ~1400 msgs/sec produced, 900-1000 msgs/sec consumed.

      another run: ~900 msgs/sec produced, ~700 msgs/sec consumed.

      No idea what is causing this difference.

    producer, two basic.consume consumers and Rabbit on same box,
    non-durable queue: ~650 msgs/sec produced and consumed.

    basic.get consumers manage 25 msgs/sec each, using nearly no CPU.

Blog posts
==========

Initial queueing experiments: http://www.myelin.co.nz/post/2008/8/4/#200808042

Queueing update: http://www.myelin.co.nz/post/2008/8/10/#200808101
You can’t perform that action at this time.