Closed
Conversation
c008b2d to
1538409
Compare
91ee24f to
f8002b7
Compare
Contributor
Author
|
And now with additional fixes that make h2/h3 work correctly: Download Speed (h2), limit=800.000 KB/s, from httpd/2.4.66
size serial(2) [cpu/rss]
128KB 792.025 KB/s, -1.0% [10.9%/11MB]
512KB 801.773 KB/s, +0.2% [2.1%/12MB]
1MB 801.091 KB/s, +0.1% [1.1%/12MB]
10MB 800.302 KB/s, +0.0% [0.2%/12MB]
Download Speed (h3), limit=800.000 KB/s, from nghttpx: https:62578 [backend httpd/2.4.66]
size serial(2) [cpu/rss]
128KB 792.184 KB/s, -1.0% [10.6%/12MB]
512KB 800.064 KB/s, +0.0% [2.4%/12MB]
1MB 800.376 KB/s, +0.0% [1.2%/12MB]
10MB 800.174 KB/s, +0.0% [0.5%/12MB] |
When a download size is known and rate limiting is in effect, adjust the
duration of each measurement step and its rate for maximum precision.
Since it is unpredictable how long the last bytes of a download will take,
download speed can be thrown off if the "last bytes" are a significant
amount of the total download. Make the "last bytes" small in comparision
to the rest and "stretch" the rate limit intervals to accommodate
the difference.
Fix ngtcp2 receive data acknowldgements to be based on a local window
size tracking. This allows window updates controlled by rate limits.
Fix ratelimit wait time calculation to accomodate negative tokens.
h3 rate limit, update timeers
Make download rate limits work correctly in ngtcp2. Fix multi
handling of rate limits to set a timer for when limits will update
again.
Without running the transfer on limit updates, protocols like h2/h3
may stall if the server does not send due to stream windows being
too small.
scorecard: measure download speedlimits
When running scorecard with --limit-rate=n, show the reported download
speed averages plus percentage deviation from the limit.
58a8def to
db5f0a5
Compare
bagder
approved these changes
Jan 16, 2026
Member
bagder
left a comment
There was a problem hiding this comment.
This is ripe for merge now, right?
Contributor
Author
|
Yes, please. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a download size is known and rate limiting is in effect, adjust the duration of each measurement step and its rate for maximum precision.
Since it is unpredictable how long the last bytes of a download will take, download speed can be thrown off if the "last bytes" are a significant amount of the total download. Make the "last bytes" small in comparison to the rest and "stretch" the rate limit intervals to accommodate the difference.
Fix ngtcp2 receive data acknowledgements to be based on a local window size tracking. This allows window updates controlled by rate limits.
Fix ratelimit wait time calculation to accommodate negative tokens.
Add ratelimit measurements in scorecard. Examples: