[rabbitmq-discuss] Basic.Acks terribly slow

Simon MacMullen simon at rabbitmq.com
Fri May 9 11:45:10 BST 2014


On 09/05/14 02:19, Arun Rao wrote:
> Hi guys -
>
> Producers (.NET clients) are publishing messages to RabbitMQ cluster at
> a rate of 800 to 900 messages/sec. At this rate, RabbitMQ response times
> to Ack producers goes significantly higher. It takes longer than 500ms
> to ack with a delivery-tag, per channel. (Total Connections: 3000+ at
> all times.)

Fundamentally latency is likely to go up when you push the server 
harder; when any given piece of work needs to be done the component that 
needs to do it is doing something else that's unlikely to be avoidable.

> Objective: Reduce RabbitMQ server response time to less than 100ms when
> acknowledging messages on each channel. (Please see we are reusing
> connections.)

You don't say whether the messages are persistent but I would guess from 
the performance numbers you give that they are. In that case you could 
lower latency by moving to an SSD.

But really, if it's a problem that publish confirms are taking 500ms to 
come back then you might have the wrong expectations; RabbitMQ tries to 
optimise for throughput rather than latency when deciding when to send 
confirms.

Is each producer waiting for each confirm to come back before publishing 
the next message? If so I suggest not doing that; allow publishers to 
have multiple outstanding messages and handle confirms as they come in. 
If you are already doing that, why is waiting 500ms a big deal?

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list