Hi everyone! We’ve received reports from users that are struggling to upload large files via our HAProxies. With some testing, we discovered that h1 is relatively stable as latency increases while h2 constantly degrades. We’ve narrowed the issue down to `tune.h2.fe.initial-window-size` which states:
> The default value of 65536 allows up to 5 Mbps of bandwidth per client > over a 100 ms ping time, and 500 Mbps for 1 ms ping time. Which is in line with our experiments. While researching the topic, I've come across a blog post from Cloudflare [1] where they mention improvements to their edge which dynamically adjusts the window size to accommodate the latency and bandwidth constraints. They've upstreamed the patch to nginx [2] (although I must admit that I'm not sure whether the change is fixing a nginx specific issue or the general issue we are experiencing here). Is there a similar mechanism in HAProxy? So far I can only see the static option for the initial window size which comes with the mentioned drawbacks. Thank you! Max [1] https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/ [2] https://mailman.nginx.org/pipermail/nginx-devel/2020-August/013436.html