Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upx/net/http2: WINDOW_UPDATE sent rate too high and can't be configured #28732
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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 will go experiment and see how much benefit some change like this truly offers. |
This comment has been minimized.
This comment has been minimized.
Definitely room for improvement here. (There might even be a TODO about this in the code, IIRC) But let's not add configurability here. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Change https://golang.org/cl/150197 mentions this issue: |
This comment has been minimized.
This comment has been minimized.
I could not find the change in the master. |
What version of Go are you using (
go version
)?golang:1.10.0 linux
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?container: rhel
kubenet:
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?