> Am 29.10.2025 um 22:12 schrieb Dmitry Karpov via curl-library
> <[email protected]>:
>
> I ran the same throttling tests on 8.16.0 that helped to find the speed
> throttling issue on 8.7, and I can tell that the throttling accuracy in
> 8.16.0 is significantly worse than in 8.6.0 and 8.7.1.
>
> My tests use 1MB downloads on network speeds: 700mbps, 50mbps and 20mbps,
> with 8mbps and 16mbps throttling speeds.
> The test measures the performed transfers speeds on 10 downloads and
> calculates average and max deviations from the rate limits.
>
> Here is the brief description of test results:
>
> 8.6.0 (and 8.7.1)
> Network speed: 700mbps, Rate limit: 8mbps, Avg deviation: -0.86%, Max
> deviation: -1.5%.
> Network speed: 700mbps, Rate limit: 16mbps, Avg deviation: -1.72%, Max
> deviation: -2.8%.
>
> Network speed: 50mbps, Rate limit: 8mbps, Avg deviation: -0.37%, Max
> deviation: -1%.
> Network speed: 50mbps, Rate limit: 16mbps, Avg deviation: - 1.64%, Max
> deviation: -3.2%.
>
> Network speed: 20mbps, Rate limit: 8mbps, Avg deviation: -0.6%, Max
> deviation: -1.1%.
> Network speed: 20mbps, Rate limit: 16mbps, Avg deviation: -1.37%, Max
> deviation: -1.7%.
>
> 8.16.0
> Network speed: 700mbps, Rate limit: 8mbps, Avg deviation: 4.65%, Max
> deviation: 13.7%.
> Network speed: 700mbps, Rate limit: 16mbps, Avg deviation: 6.69%, Max
> deviation: 17.7%.
>
> Network speed: 50mbps, Rate limit: 8mbps, Avg deviation: 7.03%, Max
> deviation: 10.2%.
> Network speed: 50mbps, Rate limit: 16mbps, Avg deviation: 9.99%, Max
> deviation: 15%.
>
> Network speed: 20mbps, Rate limit: 8mbps, Avg deviation: 10.89%, Max
> deviation: 15.5%.
> Network speed: 20mbps, Rate limit: 16mbps, Avg deviation: 5.34%, Max
> deviation: 14.5%.
>
> As we can see, the 8.6.0 (and 8.7.1) has almost perfect rate limit accuracy
> with a tendency to curb the download speed a little but below the limit,
> which is a good thing that makes the download speed unlikely to go beyond the
> limit.
>
> On the other hand, the 8.16.0 has wider deviations from the rate limits with
> a tendency to use more network bandwidth than the limit specifies.
> And the max deviations above 10% make it difficult to have reliable
> predictions of the throttled download speeds.
>
> If the almost perfect accuracy of 8.6.0/8.7.1 comes with a price of much
> higher CPU utilization, which maybe not acceptable for everyone,
> then maybe we need to adjust the rate limiting mechanism and make it to
> provide just 5% accuracy with a tendency to use less network bandwidth than
> the rate limit,
> when the precise accuracy is not possible.
>
> The tendency to use more bandwidth in the current mechanism creates problems
> when rate limits are specifically set to prevent low priority downloads from
> stealing
> network bandwidth from downloads with higher priority.
We'd have to revisit rate-limited/paused transfers in the future. Your
measurements show that this could be better.
Not sure when we'll find the time for that. So, I cannot promise anything.
Cheers,
Stefan
>
> Thanks,
> Dmitry Karpov
>
>
>
>
> -----Original Message-----
> From: curl-library <[email protected]> On Behalf Of Dmitry
> Karpov via curl-library
> Sent: Tuesday, October 28, 2025 11:38 AM
> To: libcurl development <[email protected]>
> Cc: Dmitry Karpov <[email protected]>
> Subject: [EXTERNAL] Re: CPU usage since 8.7.1
>
> It was me who reported it back then.
> The precision loss of the rated downloads was more than 10% in some cases,
> which was above our 5% tolerance.
>
> It caused problems in multi-download prioritized scenarios where rated
> downloads with less priority were stealing bandwidth from the downloads with
> higher priority.
>
> I am also concerned about CPU usage, but 10% rate precision deviation is too
> high.
> And in our case (video streaming application), the problem was that the
> prioritized video got worse quality and other problems which affected our
> users.
>
> Ideally, the optimal solution would be to avoid busy loops and using too many
> CPU cycles, and provide 5% rate accuracy.
>
> Thanks!
> Dmitry Karpov
>
> -----Original Message-----
> From: curl-library <[email protected]> On Behalf Of Gleb
> Smirnoff via curl-library
> Sent: Tuesday, October 28, 2025 11:11 AM
> To: Daniel Stenberg <[email protected]>; Stefan Eissing <[email protected]>
> Cc: Gleb Smirnoff <[email protected]>; Gleb Smirnoff via curl-library
> <[email protected]>
> Subject: [EXTERNAL] Re: CPU usage since 8.7.1
>
> On Tue, Oct 28, 2025 at 05:32:27PM +0100, Daniel Stenberg wrote:
> D> On Tue, 28 Oct 2025, Gleb Smirnoff via curl-library wrote:
> D>
> D> > So here I am raising this question. What needs to be done to get
> D> > CPU savings of 8.6.0 level and how can we help here?
> D>
> D> As recall things, the change that introduced the new (current)
> D> behavior was done to enhance the accuracy of the rate limit logic, at
> D> the expense of CPU.
> D>
> D> The change was pushed for by someone who argued that the increased
> D> precision was valuable for them if I remember correctly.
> D>
> D> Can we find a way to have both ways and let the user select which?
> D> Maybe for example by maybe something as silly and simple as doing
> D> CURLOPT_MAX_RECV_SPEED_LARGE % 10000 and if that is non-zero, higher
> D> precision is wanted.
>
> I added Stefan to explicit Cc. Since he very recently added 24badd29f titled
> "limit-rate revisited" (of course this conlicted with out patch again), he
> definitely should have an opinion on how this can be solved.
>
> --
> Gleb Smirnoff
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette: https://curl.se/mail/etiquette.html
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette: https://curl.se/mail/etiquette.html
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette: https://curl.se/mail/etiquette.html
--
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette: https://curl.se/mail/etiquette.html