[rabbitmq-discuss] Connection always blocked
François Beausoleil
francois.beausoleil at gmail.com
Fri Apr 13 19:35:04 BST 2012
I'm replaying history in an event sourced system. I use Scala + Akka
to read serialized messages from disk, and publish to RabbitMQ, where
regular consumers will handle the messages and all that jazz. The
messages are published to a Topic exchange, with 12 queues bound to
the exchange, using left-anchored routing keys: "#", or "abc.#" and
similar. I'm using RabbitMQ 2.8.1, Akka 1.1.3, Scala 2.9.0.1, on
Rackspace's VMs, using Ubuntu 11.10.
I just researched on this mailing list and found a reference to the
flow control page: http://www.rabbitmq.com/memory.html. I went ahead
and read the document, and checked what my connection was doing:
# while sleep 5; do rabbitmqctl list_connections pid name peer_address
last_blocked_by last_blocked_age state | grep blocked ; done
<rabbit at amqp01.3.14347.20> 10.182.113.78:36734 ->
10.181.106.210:5672 10.182.113.78 flow 0.105658
blocked
<rabbit at amqp01.3.14347.20> 10.182.113.78:36734 ->
10.181.106.210:5672 10.182.113.78 flow 0.470772
blocked
<rabbit at amqp01.3.14347.20> 10.182.113.78:36734 ->
10.181.106.210:5672 10.182.113.78 flow 1.082906
blocked
<rabbit at amqp01.3.14347.20> 10.182.113.78:36734 ->
10.181.106.210:5672 10.182.113.78 flow 0.462744
blocked
As you can see, my connection is essentially always blocked.
Previously, under 2.7.1, my connection wouldn't block until I hit the
vm_memory_high_watermark. I upgraded to 2.8.1 specifically to prevent
such an issue from reoccuring, but I didn't anticipate the utter loss
of performance: under 2.7.1, I would publish 2000+ messages per
second, and I can barely achieve 900 now. I must have done something
wrong.
Can anyone help me achieve more performance?
Thanks a lot!
François Beausoleil
More information about the rabbitmq-discuss
mailing list