[rabbitmq-discuss] MTU

Martin Sustrik sustrik at 250bpm.com
Mon May 10 08:35:24 BST 2010


Gustavo,

> If RabbitMQ are receiving 20 messages per millisecond from publisher and 
> each message have 213 bytes, what the size of packages over network to a 
> consumer or other broker?

20 msgs/ms = 1 message each 50 us

This means (under Linux at least) that each message is sent as a 
separate packet. Or maybe three packets per message. It depends on 
whether RabbitMQ sends message using single OS call or whether is sends 
each frame separately.

Anyway, with 213 bytes of message body and ~60 bytes of AMQP envelope, 
OS gets 273 bytes each 50 us to send. At this rate OS will probably do 
no packet coallescing (depends on TCP_NODELAY setting and latency of 
your link), neither will interrupt coalescing in the NIC kick in (it 
usually starts working when packets are less than 20-30 us apart).

Thus, packets on the network are likely to be ~300 bytes long (taking 
into account IP and TCP headers). Check it using a packet capturing tool 
such as wireshark!

Anyway, packets 300 bytes long are way below standard MTU (1500) or 
jumbo frame MTU (9000) -- making the setting pretty irrelevant.

Martin





More information about the rabbitmq-discuss mailing list