[Bug 211003] net.inet.tcp.delayed_ack=0 and local TCP traffic

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Jul 11 12:37:21 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211003

            Bug ID: 211003
           Summary: net.inet.tcp.delayed_ack=0 and local TCP traffic
           Product: Base System
           Version: 10.2-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: moko at moko.ru

We have many FreeBSD installations and some of them historically have the
following settings in /etc/sysctl.conf:

net.inet.tcp.delayed_ack=0
net.inet.tcp.recvspace=8192
net.inet.tcp.sendspace=150000

After upgrading to 10.2 we've run into an issue - local http requests were
delaying after every 8kb of data for 5 seconds.

lynx --mime_header "http://<server ip>/any file around 200kb"
first we get 4Kb (incuding headers)
5 seconds delay (exact value, not an approximate)
next 8Kb
5 seconds delay
next 8Kb
... and so on.

Everything is fine if the file is requested remotely, only local requests have
such delays. Nginx or apache - both have the delays. We also where able to
reproduce the delays in virtualized environment. There are no issues with this
sysctl settings in FreeBSD 8.X and FreeBSD 9.X.

Setting net.inet.tcp.sendspace=4096 "hides" the issue. Increasing
net.inet.tcp.recvspace to more then 32664 also "hides" the issue. Restoring
net.inet.tcp.delayed_ack to default 1 also "hides" the issue but there are
still some performance issues if net.inet.tcp.recvspace is low:

>sysctl net.inet.tcp.recvspace=8192
>time lynx --mime_header "local file around 200 kb" > /dev/null
0.009u 0.000s 0:01.41 0.0%      0+0k 0+0io 0pf+0w

>sysctl net.inet.tcp.recvspace=32768
>time lynx --mime_header "local file around 200 kb" > /dev/null
0.009u 0.000s 0:00.01 0.0%      0+0k 0+0io 0pf+0w

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list