[rabbitmq-discuss] RabbitMQ experience

Valentino Volonghi dialtone at gmail.com
Sun Jan 25 22:53:29 GMT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Jan 24, 2009, at 4:42 AM, Martin Sustrik wrote:

> Matthias,
>
>>>> RabbitMQ/stomp (np)     4475/360    362/33    175/17    85/8
>>>> (persistent)            3920/371    375/35    180/18    88/8
>
> The interesting thing about the test is that the overall throughput
> corresponds to message size in a very straightforward way. The network
> wasn't exhausted (unless very low-bandwidth connection was used or a
> very unefficient format for encoding the message body) so it seems  
> that
> the main bottleneck has to do with processing the body of the message.
> Excessive copying may be the cause, or maybe a slow binary->text- 
> >binary
> conversions)...


A lot of help comes from using zlib:compress() on the payload before  
sending
it. I've measured about 4400 persistent messages per second on a simple
dual processor using the erlang client and rabbitmq 1.5.0 with a  
payload of
about 4K compressed. And that value is actually the req/sec that I was  
able to
serve from a mochiweb that was using rabbitmq to log requests. Another  
probable
reason for the increased speed I'm seeing is the use of the erlang  
client that sits
in the same process and doesn't incur in tcp performance hit on the  
wire.

Actually I'm VERY satisfied performance wise with RabbitMQ and really  
the
only thing missing to make it the perfect store-and-forward solution
is page-to-disk.

My tests were done on a Core 2 Duo 2.4Ghz with 4GB of memory on
a Gigabit network (used by the python consumer that was able to get  
more than
150msg/sec, including decompression), but this value is probably also  
changed
by the shovel that runs on the source rabbitmq that batches 1000  
messages together
before sending them to a destination rabbitmq.

I should probably run more rigorous tests and see what happens again,  
it would
be very interesting for me too. With 1KB messages though I remember  
seeing
about 8000 msg/sec on the producer side (just pushed in rabbitmq, not  
queued)
with about 4000 msg/sec on the consumer side (consumed). So it could  
indeed
be an 'issue' with serialization as the body of the message grows.

On EC2 instead it's totally different story :), unfortunately the  
shared nature of
the machines makes them pretty slow in almost all cases, a medium high- 
cpu
instance barely reaches 1500 req/sec in the 'same' configuration (the  
one with
mochiweb) and only for short times but the ability to scale on demand  
could be
put to good use :).

I'm not sure if this is useful to anybody, hope so.

- --
Valentino Volonghi aka Dialtone
Now running MacOS X 10.5
Home Page: http://www.twisted.it
http://www.adroll.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAkl87WkACgkQ9Llz28widGXK4wCbBvKRu/D5C2e72f6djV0Ju4cH
EYEAoJxN0adnuwUHZexIJ0cm8NYmr4ZP
=sBVb
-----END PGP SIGNATURE-----




More information about the rabbitmq-discuss mailing list