4 ms·
The biggest issue we’ve encountered with WireGuard is that it doesn’t (yet?) support GRO, which means the kernel doesn’t combine multiple sequential TCP frames
by foobarbazetc 8y ago
The biggest issue we’ve encountered with WireGuard is that it doesn’t (yet?) support GRO, which means the kernel doesn’t combine multiple sequential TCP frames inside the tunnel into one before presenting it to a program. This increases RTT by a significant amount.
- kanox 8y agoThat doesn't sound right, GRO is a performance optimization but shouldn't be required for interactive response. Sounds like what you need is TCP_NODELAY?
- foobarbazetc 8y agoSee above. ;)
- zx2c4 8y agoActually, I turned on inner-packet GRO a few weeks ago with this one-line change, resulting in surprisingly massive performance boosts for TCP: https://git.zx2c4.com/WireGuard/commit/?id=95951af7249912a4356b9a03cf3addc7e3f8f724 https://git.zx2c4.com/WireGuard/commit/?id=95951af7249912a43...
- foobarbazetc 8y agoWoohoo! Well, that’s amazing. We built a whole massively scalable CDN on top of WireGuard then hit that issue and had to shelve like 3 months of work. Thanks for that!