[rabbitmq-discuss] Possibly latency issues

Sam Crawley samc at catalyst.net.nz
Tue Feb 14 22:39:05 GMT 2012


Thanks, that certainly seems to have done the trick!

On Tue, 2012-02-14 at 13:24 +0000, Simon MacMullen wrote:
> On 14/02/12 02:47, Sam Crawley wrote:
> > Running this, I always get an average time (and I'm obviously only
> > timing the reading of messages) of 0.04s. (FWIW, I get the same with our
> > home grown client).
> >
> > Does it seem like there's something wrong here?
> 
> Yes. Very much so. I replicated your problem.
> 
> The problem is that the old version of librabbitmq that is embedded in 
> Net::RabbitMQ does not disable Nagle's algorithm. (I assume your 
> homebrew client also does not.)
> 
> Looking in wireshark we see that almost all of the delay happens after 
> the basic.publish, when the TCP stack waits 0.04s (on my machine) for 
> more data before *actually* sending the publish. Everything else is very 
> fast in comparison, giving an almost perfect 25 msg/s for me.
> 
> I hacked in a call to setsockopt() to set TCP_NODELAY in amqp_socket.c, 
> and now I get:
> 
> Longest request: 0.000537, Shortest Request: 0.000146
> Mean Req time: 0
> 
> Which I think is more the performance you might be looking for. 
> (Presumably the "mean req time" suffered underflow.)
> 
> The current version of librabbitmq sets TCP_NODELAY, so maybe 
> Net::RabbitMQ should be updated? (CCing maintainer...)
> 
> Cheers, Simon
> 




More information about the rabbitmq-discuss mailing list