nnrpd and TCP nagle
Russ Allbery
eagle at eyrie.org
Wed Mar 23 17:17:10 UTC 2016
christian mock <cm at tahina.priv.at> writes:
> I've been debugging a slow reader issue with a friend and we've found
> that when his tin does a "listgroup", each and every article number is
> going over the wire in its own packet. That, of course, is pretty
> inefficient.
> I've found the following in nnrpd.c (line 614):
> /* Setting TCP_NODELAY to nnrpd fixes a problem of slow downloading
> * of overviews and slow answers on some architectures (like BSD/OS). */
> setsockopt(STDIN_FILENO, IPPROTO_TCP, TCP_NODELAY, &nodelay, sizeof(nodelay));
> Which, when removed, makes for way better performance, about an order
> of magnitude down in number of packets and time for the group we've
> been testing with.
> The last time I ran INN on BSD/OS was 20 years ago, and BSD/OS has
> been discontinued in 2003, which indicates this line is somewhat
> historic. And for NNTP TCP_NODELAY makes no sense in the first place.
> So I suggest removing this.
Yup, I agree. It's almost never a good idea to tweak stuff like that with
a modern networking stack. The kernel is probably going to be smarter
about aggregation than we're going to be.
--
Russ Allbery (eagle at eyrie.org) <http://www.eyrie.org/~eagle/>
Please send questions to the list rather than mailing me directly.
<http://www.eyrie.org/~eagle/faqs/questions.html> explains why.
More information about the inn-workers
mailing list