Re: [core-dev] More tests confirm (re: Bandwidth Balanced Swarms?)
Sam Berlin <[email protected]> Mon, 29 Nov 2004 11:14:05 -0500
| Newsgroups | gmane.network.gnutella.limewire.core.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Brian, This is very interesting ... the slowdown is more or less a race condition in the code and something that should appear only occasionally. This is very odd that you're seeing it all the time. LimeWire, by default, does not throttle downloads. However, you may have added some throttling by changing your options (Options -> Downloads, "Download Bandwidth"). If that slider is set to unlimited, no throttling will take place -- if it's anything less, there may be some throttling. Can you check to make sure the downloads aren't being throttled? If they're not, we'll definitely have to investigate into this. Thanks, Sam On Nov 29, 2004, at 9:59 AM, Brian Fall wrote: > > Hi guys, before trying to address this problem I wanted to test a > little more to ensure that it was actually an issue (and not just a > temporary problem) and can now confirm the problem with more detail. > To test I use Limewire Pro 4.2.3 on a laptop that connected to two of > my own servers that both ran Limewire as well. I used a movie that > only I have (so that no other peers on the network would be found; > just mine for which I could monitor the upload speed) and ran the > tests again, and the results are the same: when downloading from just > one server Limewire would download at nearly full speed (not 100% of > the servers available bandwidth, more like 80% or so but that's fine). > But when I would place the same file on the other server and re-try it > would download at about 50% of the available download speed for each > server -- in fact, downloading from two servers wasn't much faster (if > at all) than downloading from a single server because of the drop-off > in download speed once mo! > re than 1 source was used. When I tried the same tests with a file > that IS available on the larger Gnutella network things got much worse > -- for every new source that my laptop client found I saw a > substantial decrease in download speed from my severs (that is, as > each source was found my own servers dropped off in speed). By the > time I had a handful of sources for the file my own servers had > dropped off to about 5% of their available bandwidth. > > This is such a clean drop-off in download speed (almost by half each > time a new source is added) it makes me think that Limewire does this > intentionally, although you mentioned that it might just be code in > need of an update Sam. I've started to read the downloading source > files, but they're pretty hairy and the changes I've made so far don't > make any impact. I was thinking now of working on the bandwidth > methods, but don't know if that's the right area to focus on for this. > If you have any suggestions of what source files and where in them to > revise I'll do that, as any direction you can give me would be a great > help (right now it's just trial and error, mostly error, and I fear > that I'm heading in the wrong direction with regard to fixing the > problem). > > Brian > --- > > > > I see -- thanks, Sam. I thought that it might be a feature (makes > sense in some ways to balance the node on a public p2p network so that > no one node is overtaxed) and wondered if it would be simple enough to > specify which nodes or IP ranges should download full speed while > leaving the default behavior (balancing) as-is for other nodes. I'll > continue to poke around and see if there's a simple way to do that, > and would be happy to follow your lead if you have ideas on where in > the code to do that... do you think, for example, that making the > download chunk size larger would help at all (just an idea; if the > download chunks are large, coming from my own servers, maybe there > won't be enough time for load to be balanced as other sources are > found... but maybe not, come to think of it, since the download speed > from my servers tapers off as soon as an other source is found so as i > think it through while typing this my guess is that a larger chunk > size won't help....hmmmm!) Brian > > ----- Original Message ----- > From: "Sam Berlin" > To: [email protected] > Subject: RE: [core-dev] Bandwidth Balanced Swarms? > Date: Sat, 27 Nov 2004 17:01:39 -0500 > > Hi Brian, > > > > I suspect this is a limitation of the way LimeWire synchronizes its > data-structures related to which parts of the file have been > downloaded. If a server is very slow sending a response to a single > request, that request will hold up all other connections from > requesting a new chunk. The downloading code is long overdue for some > re-architecting, to remove these limitations and simplify the class in > general. Unfortunately, I don’t believe this limitation can be > removed without some serious changes to ManagedDownloader and the way > downloading is general is designed. > > > > Thanks, > > Sam > > > > From: [email protected] > [mailto:[email protected]] On Behalf Of Brian Fall > Sent: Saturday, November 27, 2004 4:52 PM > To: [email protected] > Subject: [core-dev] Bandwidth Balanced Swarms? > > > > Hello again -- I posted this to the forums, thinking it was more along > the lines of a question the end user community could help with, but > since I'll want to have full speed from my own nodes I thought I'd > repost here in hopes that I can be pointed in the right direction. > Curently I'm looking in ManangedDownloader and HTTPDownloader to relax > this balancing, if possible. Is that the right place to look? Regards, > Brian > > > > Hello... I can't be certain, but for me (Limewire Pro 4.2.3) it looks > like Limewire is balancing bandwidth between the various sources when > swarming a download. I have tested this with my own server, which > drops in upload speed (to the test client) shortly after the client > finds more sources -- my client starts off downloading at full speed > from my server initially, since its the first source it finds, but > then the upload speed dramatically tapers off once the client finds > other sources. For example, with only my server as the source the > transfer rate is about 100KB, but that drops down to about 5KB once > the client finds other sources. > > Is this how Limewire was designed? I ask because I wanted to use my > own server as the main source (fastest downloads), with only minor > amounts being downloaded from the larger Gnutella network. But no > matter what I try I can't seem to keep a full speed download going > from my server once other sources are available to the client. > > Is there a way to do that? > > With thanks for any insight into the Limewire design you can offer! > Brian > -- > ___________________________________________________________ > Sign-up for Ads Free at Mail.com > http://promo.mail.com/adsfreejump.htm > > > _______________________________________________ > core-dev mailing list > [email protected] > http://www.limewire.org/mailman/listinfo/core-dev > _______________________________________________ core-dev mailing list [email protected] http://www.limewire.org/mailman/listinfo/core-dev