Skip to content

Seeding

parg edited this page May 9, 2023 · 10 revisions

Seeding is the act of uploading data to other peers from a completed download (of course you can/will upload data while downloading as well but this isn't generally referred to as 'seeding')

In order to upload data to other peers there have to be other incomplete peers in the swarm (pretty obvious when you think about it).

That is, if there are no other incomplete peers then it is impossible to upload.

Likewise if there is one incomplete peer and 1000 seeds all trying to upload data to it you will find it hard to upload any data to it as it has the opportunity to grab data from the other 999 as well as you.

Another thing to note is that as a seeder you can't force your data on another peer, the other peer has to request it. So even if you are connected to an incomplete peer it might well not bother requesting anything from you as it might be getting all it needs from other seeds.

One of the most often heard complaints from users is 'why aren't my seeds uploading?'. Once you have read and understood the above you also need to understand the 'seeding rules' within BiglyBT.

The Seeding Rules are configured under Options->Queue and Options->Queue->Seeding.

In order to limit the resources consumed by BiglyBT it runs a limited number of active seeds (each active seed is consuming memory, cpu and network resources, even when not uploading). Seeds are ranked according to the various seeding options and sorted by this rank. The highest ranked seeds will be activated in preference to lower ranked ones.

Things considered when ranking a seed are, for example, the number of incomplete peers, the download's share ratio and how long it has been actively seeding for.

Seeds that are not yet scheduled to become active will be shown as 'Queued'

You can see the assigned seeding rank by hovering your mouse over the 'Status' column or enabling the 'Seeding Rank' column by right-clicking on the table header and selecting 'column setup'

Increasing Seeding Speeds

If you are connected to lots of incomplete peers and yet you are uploading slowly you might want to increase the number of "upload slots" per torrent, either globally (under Options->Transfer) or on a per-torrent basis via the torrent's options. The BitTorrent protocol limits the number of peers that can be uploaded to at any given time in order to avoid uploading to lots of peers but individually at a slow speed. This is because for overall swarm speed it is important to transfer pieces (chunks of the files) quickly to other peers as they can't start redistributing the data until the entire piece has been received.

It is also worth trying to ensure that you are not "firewalled", or have "NAT issues". This is when your network setup is not allowing remote peers to connect to you. This can affect seeding as it potentially reduces the peers that you are connected to, particularly when a new peer joins the swarm and is actively seeking out peers to download from. If they can't connect to you then you risk the chance of missing the initial opportunity to upload to the peer. By the time you find the peer (e.g. from a regular, periodic tracker announce) then that peer may have completed downloading or already be connected to fast peers. There is a tester to check your incoming connection status under Help->NAT/Firewall test.

Also check your number of active seeds (in a Seeding state as opposed to Queued). If you generally have torrents with very few peers then by default they will end up Queued to save resources. They will show "0 peers" in their seeding status. Queued torrents will become active when peers are noticed, e.g. when a tracker "scrape" occurs. This check can be fairly infrequent so it may take some time to notice a peer. You can disable the "queue when 0 peers" by configuring Queue->Seeding->Ignore Rules and Queue->Seeding->First Priority as needed. You may also want to configure the maximum active torrents under the Queue rules to control how many torrents are permitted to enter an active Seeding state.

Why are my seeds in a Queued state?

See above.

Diagnosing Slow Uploading

There are various things to look at to determine the health of your client. In the Peers View there are some columns of interest. The "Choking" column shows whether the peer has been allocated an upload slot. If you are choking a peer then it can't be uploaded to as it can't make requests for data. Another column is "In Requests". For an unchoked peer this shows the number of requests that the peer has made to you for data. Each request corresponds to 16KB of data by default. Slow peers will have a small number of requests queued, fast ones a lot more.

In the Statistics view there is a "Transfers" tab. On the right there is a graph of the amount of upload data queued. If there is a lot of data queued but your client isn't uploaded very fast then this might indicate a general network problem, for example a saturated router.

Light Seeds

These were introduced in BiglyBT 2.7 and are designed to help with the specific case of private trackers that track the amount of time that a torrent is actively seeding regardless of whether actually uploading or not. In many cases such trackers have an abundance of seeds and very few incomplete peers. Under pre-2.7 circumstances this would leave your seeds in a 'queued' state reporting '0 peers' as the reason. Light Seeding addresses this by placing such seeds into an active state while using the absolute minimum of resources.

Light-seeding can be enabled overall via Options->Queue->Seeding settings. It can also be enabled/disabled on a per-tracker basis by using the View->All Trackers view - there is a right-click opion to do so.

Debug

If you are unsure as to how a particular seeding rank is being arrived at then you can enable debug information under

`Options->Queue: Log debug information`

The 'Seeding Rank' column tooltip will be augmented with useful information.

Note that this option does use quite a bit of resource so disable it when not required.