Skip to content

myelin/queueing-playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

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

About

Various scripts I've been using to benchmark queue servers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages