[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