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

Feature: Target download speeds #7682

Open
rosierazorex opened this Issue Nov 7, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@rosierazorex

rosierazorex commented Nov 7, 2017

Hey.

This should be pretty simple to implement and not compromise the low-footprintiness of qBittorrent.

Have some kind of target download speed/limit and dynamically start and stop the next downloads in the queue to meet it. You would ideally set this somewhere near your max download speed. This would prioritize bandwidth for torrents higher in the queue and maximize the total bandwidth in case of slow torrents.

eg

Target download speed: 2Mb/sec
Max active downloads: unlimited

  -The first torrent only reaches 1Mb/sec so start the next in the queue.
  -Second torrent only reaches 0.2Mb/sec, so start the next one too.
  -Third torrent reaches at least 0.8Mb/sec, so the 2Mb/sec target has been reached.

At this point the program could do a number of things to maximize overall download speed and maintain maximum bandwidth for torrents higher in the queue. It wouldn't be too hard to make sure lower priority torrents don't eat into higher priority torrent speeds, it would just require monitoring of all the current downloads.

Would this be difficult to implement for some reason?

@Seeker2

This comment has been minimized.

Show comment
Hide comment
@Seeker2

Seeker2 Nov 8, 2017

If set to an unreachable speed, more-and-more torrents will be started until qBitTorrent potentially overloads.

Upload and Download limits would probably both need to be set for this to work correctly, because overloads on one could drastically affect the other.

Seeker2 commented Nov 8, 2017

If set to an unreachable speed, more-and-more torrents will be started until qBitTorrent potentially overloads.

Upload and Download limits would probably both need to be set for this to work correctly, because overloads on one could drastically affect the other.

@rosierazorex

This comment has been minimized.

Show comment
Hide comment
@rosierazorex

rosierazorex Nov 9, 2017

Yeah of course. There are a bunch of things to consider to make it work properly. but it shouldn't be especially hard or expensive performance wise. Rather than outline a perfect design I was really just floating the idea. I'm also not a dev in any way, I couldn't help build this.

If someone were to download... a season of a copyright-free series, or something, there's currently no way to have each torrent download in order without limiting the number of downloads and wasting potential bandwidth. Does no one care about that?

Ok slightly different approach; still have a max number of downloads, just don't use the next available 'download slot' unless the current torrents are below your target download speed.
You'd also need to leave some small bandwidth available for your highest priority torrent(s) to see if it is trying to go faster. So if it fills that extra bandwidth just pause or limit the lowest priority torrent to allow for it. And repeat. Etc

Obv a few more things to consider but doable and light. No?

rosierazorex commented Nov 9, 2017

Yeah of course. There are a bunch of things to consider to make it work properly. but it shouldn't be especially hard or expensive performance wise. Rather than outline a perfect design I was really just floating the idea. I'm also not a dev in any way, I couldn't help build this.

If someone were to download... a season of a copyright-free series, or something, there's currently no way to have each torrent download in order without limiting the number of downloads and wasting potential bandwidth. Does no one care about that?

Ok slightly different approach; still have a max number of downloads, just don't use the next available 'download slot' unless the current torrents are below your target download speed.
You'd also need to leave some small bandwidth available for your highest priority torrent(s) to see if it is trying to go faster. So if it fills that extra bandwidth just pause or limit the lowest priority torrent to allow for it. And repeat. Etc

Obv a few more things to consider but doable and light. No?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment