[rabbitmq-discuss] Enabling publisher confirms damages performance by a factor of 10x

ModronMaze jtlg at vp.pl
Mon Aug 19 10:35:09 BST 2013


I tried to use publisher confirms to ensure my messages are not lost, but
encountered a performance issue. My test case is as follows:

1. One publisher sends 200.000 messages in a loop and asynchronously marks
them as confirmed.
2. One consumer reads messages from queue, executes some work (db access,
sends other messages etc)
3. Prefetch is set to 512.
4. Queue and messages are durable/persistent.
5. I tried using versions 3.0.2, 3.1.4, 3.1.5

Without using publisher confirms I publish at least *250 msg/s* (and ack
with the same speed). Queue contains only prefetched messages.

When I enable confirms (separate channel and connection - only for sending
messages that require it) speed drops to *15-25 msg/s*. Using management API
I found out that publisher's connection is constantly blocked by flow
I think it is strange, because all messages are consumed as soon as they
enter a queue. I did not observe any problems with memory/disk limits.

I'm attaching a screenshot with blocked connection. Usually "To client" is
not zero (about 250 B/s).


View this message in context: http://rabbitmq.1065348.n5.nabble.com/Enabling-publisher-confirms-damages-performance-by-a-factor-of-10x-tp28914.html
Sent from the RabbitMQ mailing list archive at Nabble.com.

More information about the rabbitmq-discuss mailing list