legendary icon indicating copy to clipboard operation
legendary copied to clipboard

[Feature Request] Limit download speed.

Open tonebacas opened this issue 3 years ago • 6 comments

First I gotta say this is a great utility.

Back on topic, I would like to limit the speed at which games are downloaded, so it doesn't take all my bandwidth.

Thank you.

tonebacas avatar Nov 05 '20 14:11 tonebacas

This is much harder to do than you might think, especially when working with multiple workers and all that. For the time being you can use --max-workers to reduce the number of downloads that run in parallel. Reducing this to 1 or 2 will already throttle downloads quite significantly.

derrod avatar Nov 05 '20 14:11 derrod

Using --max-workers seems like a good alternative to limiting the download speeds on a hard cap, and it should work for my purposes.

Thank you.

tonebacas avatar Nov 06 '20 14:11 tonebacas

This is a really good suggestion, would love to see this in the future too. For the moment I'm using another application called netlimiter to limit the download rate in a more controlled way.

kopilo avatar Sep 17 '21 02:09 kopilo

What about a per worker limit at least?

gameboycjp avatar Dec 18 '23 23:12 gameboycjp

This feature is essential for dealing with my terrible and sadly non-improvable internet speeds, without downloading games causing all other traffic to basically stop network-wide. My router seems to entirely lack QoS.

Novimatrem avatar Feb 10 '24 10:02 Novimatrem

This is much harder to do than you might think, especially when working with multiple workers and all that.

Yeah I can definitely understand the difficulty. The user may ask for "10MB/sec", and one worker may be doing 0.5MB/sec and another may be doing 9.5MB/sec". So a plain "10MB/sec divided by total workers = hard cap on each worker" would not be an accurate way to limit speeds, since that would be "5MB/sec per worker" and would end up only running at 5.5MB/sec total then.

All workers would instead need communication with each other to somehow organize speeds. And even that sounds like a mess, since speeds could fluctuate rapidly, which would make it very hard to ensure all of the workers still hit the target speed (not under/over).

But even though it's hard, it's also a solved problem. Various download managers have the feature of limiting total speed while doing multi-threaded downloads. It seems like aria2 also has that feature.

I wonder if it would be possible to port the downloading code to the aria2 library to get the "multithreaded downloads + speed limit" features that way?

Arcitec avatar Feb 12 '24 20:02 Arcitec