You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/wgengine
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>
1 year ago
..
bench ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
capture various: add golangci-lint, fix issues (#7905) 3 years ago
filter wgengine/filter: support FilterRules matching on srcIP node caps [capver 100] 1 year ago
magicsock wgengine/magicsock: use cloud metadata to get public IPs 1 year ago
netlog wgengine: add exit destination logging enable for wgengine logger (#11952) 2 years ago
netstack wgengine/netstack: increase gVisor's TCP send and receive buffer sizes (#12994) 1 year ago
router wgengine/router: use quad-100 as the nexthop on Windows 1 year ago
wgcfg ipn,wgengine: remove vestigial Prefs.AllowSingleHosts 2 years ago
wgint wgengine{,/wgint}: add wgint.Peer wrapper type, add to wgengine.Engine 2 years ago
wglog all: use Go 1.22 range-over-int 2 years ago
winnet all: add test for package comments, fix, add comments as needed 1 year ago
mem_ios.go all: update copyright and license headers 3 years ago
pendopen.go net/flowtrack: optimize Tuple type for use as map key 1 year ago
userspace.go net/ipset, wgengine/filter/filtertype: add split-out packages 1 year ago
userspace_ext_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
userspace_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
watchdog.go ipn/ipnlocal,net/tstun,wgengine: create and plumb jailed packet filter 2 years ago
watchdog_js.go all: update copyright and license headers 3 years ago
watchdog_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
wgengine.go all: add test for package comments, fix, add comments as needed 1 year ago