Author Topic: Best way to seed torrent?  (Read 199 times)

qBuser47

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Best way to seed torrent?
« on: May 10, 2017, 03:47:48 AM »
Is uploading to multiple peers simultaneously faster for the entire swarm, rather than uploading to one peer at full speed?

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #1 on: May 10, 2017, 05:35:03 PM »
Trying to upload without limits causes lots of packet loss and resends which is slower than setting a max upload speed limit just low enough to make packet loss far rarer. ISPs count the lost packets against your speed limits AND daily/monthly bandwidth limits! Even using a software firewall or router's QoS alone to regulate upload speed means randomly throwing away packets sent by qBitTorrent some of which are critical enough to sabotage/reduce speeds more than necessary.

Uploading to just 1 peer is the slowest, as often you'll get a slow peer that won't download faster than 10 KB/sec from you. (They could be overloaded from trying to upload too fast themselves, they could be flooded by downloading from lots of other peers/seeds, bad/slow/hostile ISP, etc.)

What you're uploading to other peers CANNOT be shared by them until your end has uploaded a complete piece to a peer and that peer has successfully hash checked it.
This rules out uploading at <5 KB/sec per peer/upload slot, especially on torrents with pieces >1 MB size.
If the pieces are 4 MB (4096 KB) size and you're uploading at 10 KB/sec to each peer that means each piece will take over 400 seconds (~7 minutes adding in the hash check).

So divide your max usable upload speed by 10-100 KB/sec (faster for extremely fast internet connections; only 10 KB/sec for ADSL 2+, low-end cable, wifi/wireless that doesn't have >200 KB/sec usable upload) and that's the global max upload slots to allow in qBitTorrent. People don't want to download slowly if they don't have to!

Allowing qBT to connect to 50-100 peers per torrent but only uploading to 10 or less at once (due to global or per torrent max upload slot) is a waste (unless possibly using super seeding)...while ONLY seeding reduce connections per torrent to only about 5 greater than max upload slots per torrent (or per global max upload slots if only connected to 1 torrent and allowing all global upload slots on that 1 torrent). Otherwise, many peers that connect to you will see your end as a "seed" that uploads NOTHING to them!

If yours is the only seed or there's very few seeds and at least 10 connected-to-you peers, using super seeding can help the swarm...but don't use STRICT super seeding as it will cause uploading to decrease/stop a lot. Super seeding offers rare pieces 1-at-a-time to peers. Otherwise, each new peer that joins the torrent swarm may demand/order the seed to constantly upload 1st and last pieces to it. Super seeding is an exception to allowing few connected peers while seeding, because it needs to see more than 10 extra peers than you're uploading to at once to decide who to upload to next. It tries to give to the peers that consistently upload to others by tracking which peers report HAVE piece messages, but it can't track that if it's not connected to enough peers to get an overview of the torrent swarm.

Maximizing seeding can also be done by reducing other qBT activities that reduce upload speed to peers.
Especially if not firewalled, lower half open connections to only 5-10. There's no point in quickly and continually retrying dead and firewalled and seed ips for hours-to-months on end. If you're getting incoming connections, other peers will connect to your seed just fine.
REMOVE dead trackers. Also remove trackers that report only your 1 seed as present...unless they're the original trackers added by the .torrent itself. Don't use duplicate trackers (even http + udp types) especially if you set qBT to update all trackers on all torrents.
I don't recommend more than 1-5 trackers so long as they're reliable ones.
For PUBLIC torrents, even if you have no trackers at all, so long as DHT and PEX is working peers can eventually connect to your seed. After the 1st connects, it can even invite more! With a constant influx of new peers, your seed could remain seeding for days/weeks so long as connected peers inform new peers of your seed's ip address and listening port via DHT and PEX.
If trackers are reliable, you can even disable DHT to gain 1-10 KB/sec more upload speed for peers.
Disable favicons for trackers, resolve ips and resolve country flags for peers, and tracker exchange as these all require upload that can better be "spent" uploading to peers.
« Last Edit: May 10, 2017, 06:00:09 PM by Switeck »

qBuser47

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #2 on: May 11, 2017, 02:56:26 AM »
Thanks, I have a massive (150GB) file to send to over 100 peers at the moment, and my upload speed is only about 450KiB/s, when rate limited, so i have a bit of overhead for other things.

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #3 on: May 11, 2017, 03:29:54 AM »
If it's critical to always have some spare bw for other things...
Make sure uTP is also limited by qBT...it may not be by default!

qBuser47

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #4 on: May 11, 2017, 03:47:17 AM »
Yep, It is, Thanks for the advice.

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #5 on: May 11, 2017, 04:03:11 AM »
More precise answer time!
I have a massive (150GB) file to send to over 100 peers at the moment, and my upload speed is only about 450KiB/s, when rate limited, so i have a bit of overhead for other things.
Trying to upload to over 100 peers at once with only 450 KB/sec total upload would mean less than 5 KB/sec each...it's obvious you can't save them all by yourself.

So, maybe 25-40 global upload slots and limiting connections per torrent to 30-45 (+5 more than upload slot limit).
If you used super seeding, keep global upload slots slightly lower -- like 25-30 and allow 50-100 peer connections per torrent. Super seeding should only be considered if the number of seeds is likely to be 5 or less.

Peter

  • Administrator
  • Forum addict
  • *****
  • Posts: 1358
  • Karma: +32/-1
    • View Profile
Re: Best way to seed torrent?
« Reply #6 on: May 11, 2017, 10:37:07 PM »
Thanks, I have a massive (150GB) file to send to over 100 peers at the moment, and my upload speed is only about 450KiB/s, when rate limited, so i have a bit of overhead for other things.

You could try using "Strict super seeding".
It can be turned on in Options, Advanced, and then it's at the bottom.

From qBittorrent wiki:
Quote
activate libtorrent's strict mode for super seeding ("when this is set to true, a piece has to have been forwarded to a third peer before another one is handed out. This is the traditional definition of super seeding.").

From Wikipedia:
Quote
In file sharing, super-seeding is an algorithm developed by John Hoffman for the BitTorrent communications protocol that helps downloaders to be able to become uploaders more quickly, but it introduces the danger of total seeding failure if there is only one downloader.

This method helps a lot if your peers don't disappear. Because the first one will help you to seed, then the next one and so on.
I would recommend trying this out - worked me wonders in the past.
- qBittorrent team - server and forum administrator.
- Hungarian translation reviewer/moderator (+ translator).

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #7 on: May 12, 2017, 04:13:44 AM »
As I already pointed out, strict super seeding is a bad idea especially for a huge torrent.
The torrent probably has 4 MB piece size or larger, so odds are huge that uploading will slow/stall/stop due to peers taking HOURS to propagate pieces they've received from your seed.

"Regular" super seeding will continue uploading other pieces to other peers even if peers are reluctant to share.

Peter

  • Administrator
  • Forum addict
  • *****
  • Posts: 1358
  • Karma: +32/-1
    • View Profile
Re: Best way to seed torrent?
« Reply #8 on: May 13, 2017, 08:26:45 PM »
Yeah someone told me that in the past already. I don't know.
I mean I understand the technical bits... but then it also worked like wonders for me when I had a very slow upload speed.

With this, I had a big swarm up and running within ~15 hours.
Without this, the same thing took me 5-7 days.

Because if I didn't use it, I kept seeding to all people, and the swarm gained % very slowly.
With it, my upload was maxed (mostly) to one chosen peer and this allowed the swarm to grow a lot faster.
Just my experience.
- qBittorrent team - server and forum administrator.
- Hungarian translation reviewer/moderator (+ translator).

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #9 on: May 13, 2017, 10:59:05 PM »
Peter,
Your very slow upload speed  was <50 KiloBYTES/second?

"Because if I didn't use it, I kept seeding to all people"

That's why it's important to limit upload slots to match total usable upload speed...to prevent uploading to most/all peers at once.
uTorrent and BitTorrent both have a hidden limiter to prevent too many upload slots at low upload speed. I requested that feature for it back in 2005. It can be too aggressive but prevents the worst-case scenarios of trying to upload at <10 KB/sec total to >20 peers at once.

Strict super seeding will use absolutely minimal upload slots even when more are allowed...which would also explain why it worked pretty well for you, that's exactly the scenario it was designed for.
Even regular super seeding may use fewer than max allowed upload slots some of the time, so fiber lines with 100+ mbit/sec upload may find themselves under-utilized if they're using it to seed a single torrent.

Peter

  • Administrator
  • Forum addict
  • *****
  • Posts: 1358
  • Karma: +32/-1
    • View Profile
Re: Best way to seed torrent?
« Reply #10 on: May 14, 2017, 11:08:01 AM »
Yeah actually it was. :)
It was around 50kbps, or 80 or something like that.
But even lately with 500kbps and 1500kbps it worked better like this.
I don't know. Maybe I am just one in a million, that's why I said several times to take it with a pinch of salt.

It's not like trying out something will hurt anyone. :)
Thanks for the explanation by the way. Someone already spoon-fed me in the past how wrong I am and how bad this option is, but you know.. as I said, it worked. But you shouldn't use it then I guess.
- qBittorrent team - server and forum administrator.
- Hungarian translation reviewer/moderator (+ translator).

Switeck

  • Forum addict
  • ****
  • Posts: 643
  • Karma: +41/-0
    • View Profile
Re: Best way to seed torrent?
« Reply #11 on: May 14, 2017, 09:34:41 PM »
A couple versions ago (about v3.1.0) qBitTorrent wouldn't report its HAVE pieces to peers/seeds it was connected to, often letting them see 0% completed or at least 0 new pieces completed until it disconnected. So a strict mode super seed (that is watching to see if other peers got its uploaded pieces) can end up waiting indefinitely for an already-transferred piece and quit uploading to anyone.

Peers and seeds using lazy bitfield also under-report their HAVE pieces, but to a lesser degree.
Other seeds using super seeding/initial seeding only report a couple HAVE pieces at a time so can further confuse the overall state of the torrent swarm.
Any seeds and peers that are not connected to the super seed can also "hide" pieces and screw up the super seed's sharing logic.

If there's non-standard piece picking behavior (like demanding 1st/last pieces from seeds, not downloading certain files in a multi-file torrent, and sequential downloading) super seeding logic may end up offering pieces those peers don't want.
Outright cheating "BitTorrent" clients may screw up super seeding as well.

In every description of it I've seen, Super Seeding is for when your presumably slow seed is the only seed or when peers VASTLY outnumber seeds.
If everyone used super seeding, then a new peer joining a torrent would never see any 100% completed seeds despite tracker/s reporting multiple seeds. It would incorrectly give the illusion that the torrent is unable to complete even in infinite amounts of time.

In total, that is why I suggest limited use of Super Seeding especially strict mode.
« Last Edit: May 14, 2017, 09:55:05 PM by Switeck »