Discussion:
HTTP/2 initial connection window is too small
klzgrad
2018-12-11 02:07:05 UTC
Permalink
Hi,

HTTP/2 does flow control at connection level (and stream level).
HAProxy's server receive window at connection level is only 65535,
severely limiting upload ability. Per bandwidth-delay product, 65535
means at 100ms latency upload can't be faster than 655KB/s.

65535 is the default initial connection window size in the RFC. The
size can be raised by the server sending a WINDOW_UPDATE. But HAProxy
doesn't do that or throttle connection-level traffic at all, thus
RFC-conforming clients have to keep to the 65535 value. Also, the
setting tune.h2.initial-window-size only applies to stream windows.

See the following comparison of initial connection window sizes of
various servers:

Nginx: NGX_HTTP_V2_MAX_WINDOW (2^31-1)
H2O: H2O_HTTP2_SETTINGS_HOST_CONNECTION_WINDOW_SIZE (16777216)
Apache Traffic Server: Http2::initial_window_size (1048576)

-klzgrad

Continue reading on narkive:
Loading...