Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#2671 closed Bug (fixed)

Downloading from too many peers

Reported by: jch Owned by: charles
Priority: Normal Milestone: 2.00
Component: Transmission Version: 1.76
Severity: Normal Keywords: performance
Cc: grzegorz.dubicki@…, felipe.contreras@…

Description

Even when throttled, Transmission requests chunks from as many peers as will unchoke it. For example, right now I'm downloading a torrent at 10kB/s (just testing), 60 peers have unchoked me, and I'm downloading at a fraction of a kB/s from each.

The expected behaviour is that Transmission should only send requests to as many peers as are needed to fulfill its quota. Additionally, it should limit the length of the request queue, not send as many requests as the peer will allow (reqq value).

The negative effects are as follows:

  • we have too many uncompleted (and hence unverified) pieces, which we cannot upload -- we're less productive for the swarm;
  • we increase the risk of downloading the same chunk multiple times (improved in 1.80, but still);
  • we run a risk of sending a request while choked, since the likelihood of a choke and a request crossing each other is increased;
  • we're using too many peers' upload slots, which could be used more productively elsewhere.

Change History (13)

comment:1 Changed 11 years ago by jch

Sorry, I didn't realise that we moderate the number of pieces (desiredRequestCount). The rest of my complaint still stands, though.

comment:2 Changed 11 years ago by jch

After gawking at the code some more -- we do always request at least 16 blocks from every willing peer, which is way too much when the average rate is 0.2kB/s.

comment:3 Changed 11 years ago by user

  • Priority changed from Normal to High
  • Severity changed from Normal to Major

From what I have seen, but may vary heavily based on circumstances I cannot observe (maybe just a few losers with bad settings), Transmission seldom requests fewer than 5 (16KB) blocks at once.

I'm seeding torrents using uTorrent. With earlier Transmission versions (especially v1.34 and earlier), it would request 60+ 16KB blocks, then downloading from me at <3 KB/sec even when I have >10 KB/sec free upload speed out of my ~120 KB/sec upload speed max. Often, the transmission clients drop their whole queued request list and queue up another 60+ more. Other BitTorrent? clients do not seem to have as much trouble maxing out my upload.

comment:4 follow-up: Changed 11 years ago by charles

r9779 -- address a smaller aspect of this ticket, by reducing the minimum number of blocks we request from a peer, as noted by jch's comment @ http://trac.transmissionbt.com/ticket/2671#comment:2

comment:5 Changed 11 years ago by grzegorzdubicki

  • Cc grzegorz.dubicki@… added

comment:6 Changed 11 years ago by felipec

  • Cc felipe.contreras@… added

comment:7 Changed 11 years ago by charles

  • Priority changed from High to Normal
  • Severity changed from Major to Normal

comment:8 in reply to: ↑ 4 Changed 11 years ago by grzegorzdubicki

  • Keywords performance added

Replying to charles:

r9779 -- address a smaller aspect of this ticket, by reducing the minimum number of blocks we request from a peer, as noted by jch's comment @ http://trac.transmissionbt.com/ticket/2671#comment:2

And is there any other work planned on the other aspects of this bug/feature request?

comment:9 Changed 11 years ago by jch

And is there any other work planned on the other aspects of this bug/feature request?

I have a pretty good plan, but I'm busy with other stuff right now. Please don't expect anything to happen fast.

--Julek

comment:10 Changed 11 years ago by charles

  • Milestone changed from None Set to 2.00
  • Owner set to charles
  • Status changed from new to assigned

comment:11 Changed 11 years ago by charles

  • Resolution set to fixed
  • Status changed from assigned to closed

fixed in trunk for 2.00 by r10332

comment:12 Changed 10 years ago by Umang

This may not be the right place to ask, but could this be slowing my download?

I was downloading part of a distro's large iso file everyday and after upgrading to 2.00, the number of peers I am downloading from on an average has come down from about 30 to 5. I'm also now downloading at 1/10 of the previous speed (200KB/s -> 15-20KB/s). If I allow Transmission to connect to 150 peers (I used to leave it at 60) and leave Transmission for about half an hour, I start downloading from 15 to 20 peers. Even at this rate, I'm uploading (20 KB/s) more than I'm downloading (15-20KB/s) and going nowhere near the speed my connection can handle.

Can there be an option with which this peer blocking can be disabled?

It's a large torrent, and the number of seeder/leechers haven't change by my recollection.

comment:13 Changed 10 years ago by charles

r11229 is an improvement somewhat related to this.

Note: See TracTickets for help on using tickets.