-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Increase Kestrel's default HTTP/2 upload window sizes #43302
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
Conversation
|
I tested this with a 108 MB file upload using a single stream on localhost before and after the default window sizes changes. I induced 10 ms of latency introduced by adding a Task.Delay to We see a ~6x improvement when we're bottlenecked by the WINDOW_UPDATE latency as is the case with 10 ms of latency on localhost. We should theoretically see an 8x improvement from the 8x larger window update, but there could be some other overhead preventing the full theoretical improvement. Before (10 ms delay before writing WINDOW_UPDATEs)After (10 ms delay before writing WINDOW_UPDATEs) |
19f8321 to
46f0043
Compare
|
/backport to release/7.0-rc1 |
|
Started backporting to release/7.0-rc1: https://github.com/dotnet/aspnetcore/actions/runs/2870724507 |


Fixes #41825
This should dramatically improve HTTP/2 upload speeds with high-latency connections using Kestrel's default configuration. Clients are limited by both the connection and stream limits. So even though there could be many streams, Kestrel will still only buffer up to 1MB of request body data for all streams across the entire connection with this new default.