[rabbitmq-discuss] Why consumer become slow if publish faster?

Simon MacMullen simon at rabbitmq.com
Fri Feb 7 13:27:08 GMT 2014


On 07/02/2014 1:04PM, 椰风 wrote:
> Why the speed of the consumer reduced to 1200/s when speed of the
> publish grown to 4000/s?

Each queue can only use a single CPU core. Therefore as the publish rate 
goes up, the maximum consume rate goes down.

At the moment, the queue does not make any effort to prioritise 
consumers over publishers in this situation, leading to backlogs as you 
have seen.

In 3.3.0 we will be introducing a prioritisation feature so that when a 
queue is CPU-bound it will attempt to deliver messages 10% faster than 
it accepts them, leading it to tend towards being empty rather than 
growing uncontrollably.

(Historical note: we had a simpler prioritisation scheme from 1.7.0 to 
2.8.2 inclusive, which "infinitely" prioritised consuming when the queue 
was CPU bound. The trouble was you could get into situations where a 
large queue which gained some fast consumers would refuse to accept even 
a single publish until it was completely drained.)

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list