tailscale/wgengine/netstack
Jordan Whited d9d9d525d9
wgengine/netstack: increase gVisor's TCP send and receive buffer sizes (#12994)
This commit increases gVisor's TCP max send (4->6MiB) and receive
(4->8MiB) buffer sizes on all platforms except iOS. These values are
biased towards higher throughput on high bandwidth-delay product paths.

The iperf3 results below demonstrate the effect of this commit between
two Linux computers with i5-12400 CPUs. 100ms of RTT latency is
introduced via Linux's traffic control network emulator queue
discipline.

The first set of results are from commit f0230ce prior to TCP buffer
resizing.

gVisor write direction:
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   180 MBytes   151 Mbits/sec    0  sender
[  5]   0.00-10.10  sec   179 MBytes   149 Mbits/sec       receiver

gVisor read direction:
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.10  sec   337 MBytes   280 Mbits/sec   20 sender
[  5]   0.00-10.00  sec   323 MBytes   271 Mbits/sec         receiver

The second set of results are from this commit with increased TCP
buffer sizes.

gVisor write direction:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   297 MBytes   249 Mbits/sec    0 sender
[  5]   0.00-10.10  sec   297 MBytes   247 Mbits/sec        receiver

gVisor read direction:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.10  sec   501 MBytes   416 Mbits/sec   17  sender
[  5]   0.00-10.00  sec   485 MBytes   407 Mbits/sec       receiver

Updates #9707
Updates tailscale/corp#22119

Signed-off-by: Jordan Whited <jordan@tailscale.com>
2024-08-02 15:50:47 -07:00
..
link_endpoint_test.go go.mod,net/tstun,wgengine/netstack: implement gVisor TCP GRO for Linux (#12921) 2024-08-02 10:41:10 -07:00
link_endpoint.go go.mod,net/tstun,wgengine/netstack: implement gVisor TCP GRO for Linux (#12921) 2024-08-02 10:41:10 -07:00
netstack_linux.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netstack_tcpbuf_default.go wgengine/netstack: increase gVisor's TCP send and receive buffer sizes (#12994) 2024-08-02 15:50:47 -07:00
netstack_tcpbuf_ios.go wgengine/netstack: increase gVisor's TCP send and receive buffer sizes (#12994) 2024-08-02 15:50:47 -07:00
netstack_test.go wgengine/netstack: add test for #12448 2024-06-13 11:46:48 -07:00
netstack_userping_apple.go various: fix lint warnings 2024-06-06 17:06:54 -04:00
netstack_userping.go xcode: allow ICMP ping relay on macOS + iOS platforms (#12048) 2024-05-16 11:57:57 -07:00
netstack.go wgengine/netstack: increase gVisor's TCP send and receive buffer sizes (#12994) 2024-08-02 15:50:47 -07:00