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

Reply via email to