2000-10-31 16:03:37

by Antony Suter

[permalink] [raw]
Subject: for small packets TCP_NODELAY still delays


(repost, apologies if youve seen this before)

There appeared to be a bug/feature in kernel series 2.0.x and 2.2.x
which caused perodic delays in the sending of very small TCP packets
even when the TCP_NODELAY option was set. In other words, the Linux
kernel was still trying to use delayed acknowledgements.

To quote:
"A detailed measurement of inter-message timing revealed that every
35th message under about 500 bytes is delayed by 20 ms under Linux
kernel 2.0.36. Upgrading to Linux kernel 2.2.2 changed this conclusion
only slightly (every 41st message under about 100 bytes was delayed
by 10 or 20 ms)."

Does kernel 2.4.0-testX(latest) still have this behavior?

This bug/feature greatly impairs the performance of distributed parallel
programs like those that use MPI, as in a Beowulf cluster. Simple kernel
patches increase the performance by a factor of 20.

I dont grok TCP/IP stacks so perhaps im being rude and dont understand
that there might be a valid reason why this bug/feature still happens.
In that case, it would be the right thing to include this as an
optimisation setable by a kernel compile time flag or even a sysctl
variable.

What comments do the 2.4.0 kernel networking experts have about this?

Source of the quote:-
http://www.icase.edu/coral/LinuxTCP.html
http://www.icase.edu/coral/LinuxTCP2.html

The pages include a link to a tool netpipe which can be used to measure
these performance factors.

--
- Antony Suter ([email protected]) "Examiner" openpgp:71ADFC87
- "And how do you store the nuclear equivalent of the universal
- solvent?"


2000-10-31 19:32:25

by Alexey Kuznetsov

[permalink] [raw]
Subject: Re: for small packets TCP_NODELAY still delays

Hello!

> Does kernel 2.4.0-testX(latest) still have this behavior?

Why not to test and to report yet? 8)

It is not supposed to have this behaviour.

Alexey