Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/net/http2: WINDOW_UPDATE sent rate too high and can't be configured #28732

crowfrog opened this issue Nov 12, 2018 · 6 comments

x/net/http2: WINDOW_UPDATE sent rate too high and can't be configured #28732

crowfrog opened this issue Nov 12, 2018 · 6 comments
help wanted NeedsInvestigation Performance


Copy link

@crowfrog crowfrog commented Nov 12, 2018

What version of Go are you using (go version)?

golang:1.10.0 linux

Does this issue reproduce with the latest release?


What operating system and processor architecture are you using (go env)?

container: rhel

What did you do?

Currently golang http2 stack will send WINDOW_UPDATE back when receive a request with data.
It means a client will recevie a response and WINDOW_UPDATE when it send a request with data to golang http2 server.
sent one 'request' package and got two 'reponse' package, that will impact client performance in a high load traffic.
In fact, golang stack use 2^31 as default window size for connection. It is very big and updated too frequently is unnecessary.

What did you expect to see?

Change this behavior or make it configurable like other language http2 stack.
I think c++/java popular http2 stack have a configurable rate (default is 50%) used for sending WINDOS_UPDATE frame when the rate of left size/total is less than it.

What did you see instead?

@agnivade agnivade added the NeedsInvestigation label Nov 12, 2018
@agnivade agnivade added this to the Unplanned milestone Nov 12, 2018
Copy link

@agnivade agnivade commented Nov 12, 2018

/cc @rs @fraenkel @bradfitz

@crowfrog crowfrog changed the title x/net/http2: WINDOW_UPDATE sent rate to high and can't be configured x/net/http2: WINDOW_UPDATE sent rate too high and can't be configured Nov 13, 2018
Copy link

@fraenkel fraenkel commented Nov 13, 2018

Most of the frameworks have chosen 50% as the deciding factor to send a WINDOW_UPDATE when reading DATA. nginx does it at the 25% mark.
I only saw one framework that allows you to tweak the value but there could be others, however I don't think it is needed.

I will go experiment and see how much benefit some change like this truly offers.

Copy link

@bradfitz bradfitz commented Nov 13, 2018

Definitely room for improvement here. (There might even be a TODO about this in the code, IIRC) But let's not add configurability here.

Copy link

@crowfrog crowfrog commented Nov 14, 2018

hi @fraenkel & @bradfitz,

Thanks a lot for your quick response! I am ok for non-configurable.

Copy link

@gopherbot gopherbot commented Nov 19, 2018

Change mentions this issue: http2: Send WindwUpdates when remaining bytes are below a threshold

Copy link

@louygan louygan commented Dec 17, 2018

I could not find the change in the master.
when will this change merged to master?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
help wanted NeedsInvestigation Performance
None yet

No branches or pull requests

6 participants