Date: Fri, 17 Feb 2017 22:37:44 +0000 From: Steven Hartland <steven.hartland@multiplay.co.uk> To: freebsd-transport@freebsd.org Subject: TCP Receive buffer scaling without Timestamps Message-ID: <b9906198-a026-1403-73e6-279066b4e197@multiplay.co.uk>
next in thread | raw e-mail | index | archive | help
While investigating a recent thread on freebsd-net@ I became aware of the fact that FreeBSD's receive buffer scaling doesn't work when the TCP session fails to negotiate timestamp support. The result of this when downloading content from Amazon S3 and likely other locations Linux is significantly faster without manual tuning. In my tests with a latency of ~17ms on a 1Gbps connection FreeBSD downloaded from AWS S3 at only 3MB/s where the same spec Linux box got 30MB/s. Manually increasing net.inet.tcp.recvspace FreeBSD easily matched Linux performance, but obviously that's clunky, not everyone will do it and hence.... Initial research seems to indicate Linux receive buffer scaling will use timestamps, if they are available, but also falls back to RTT estimates to provide buffer scaling. The benefits of this are clear, so I wanted to kick of thread to highlight this and see if this is something we could address, given its highly likely this is going to be having a marked impact on a significant amount of our users. So the questions: 1. Has anyone looked at this issue before or is working on it? 2. Do people think we could add support for RTT estimates and enable receive scaling without major tcp stack changes? The original thread can be seen here: https://lists.freebsd.org/pipermail/freebsd-net/2017-February/047234.html Regards Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b9906198-a026-1403-73e6-279066b4e197>