[rabbitmq-discuss] MTU

David Wragg david at rabbitmq.com
Sun May 9 11:26:14 BST 2010


Hi Holger,

"Holger Hoffstaette" <holger.hoffstaette at googlemail.com> writes:
> On Sat, 08 May 2010 13:05:39 +0100, David Wragg wrote:
>> The MTU is decided by the operating system's network stack.  As Emile
>> said, RabbitMQ has no way to observe or control the MTU.
>
> It is certainly possible and not at all unusual for network software to
> observe the MTU of a given interface (via an ioctl) and use it
> accordingly. The most obvious use case for Rabbit would be batching of
> small messages, where every payload is just a few bytes. This would
> significantly reduce kernel context switches and NIC interrupts, at the
> obvious expense of per-batch latency.
> The throughput increase in scenarios with many small messages can be quite
> dramatic, especially when the entire network is using jumbo frames.

What you describe sounds more like the use of corking (e.g. via the
TCP_CORK ioctl in Linux) than an interaction with the MTU.

I see that the linux ip(7) and tcp(7) man pages do indeed describe
some MTU/MSS related options, so my statement was too strong.  I
should have said that RabbitMQ does nothing to observe or control the
MTU.  But it appears that the relevant options only allow the MTU to
be constrained to a value lower than the network interface's
configured MTU, which seems unlikely to be desirable.

David

-- 
David Wragg
Staff Engineer, RabbitMQ
SpringSource, a division of VMware



More information about the rabbitmq-discuss mailing list