Difference between revisions of "AMule is slow"

From AMule Project FAQ
Jump to: navigation, search
(until someone checks this is true, I don't agree having any hypothesis from HopeSeekr settled as a valid statement. It turns out that HS is not even a bit truthful source)
m (Acept -> Accept)
 
(37 intermediate revisions by 18 users not shown)
Line 1: Line 1:
<center>'''English''' | [[AMule_is_slow-it|Italiano]]</center>
+
<center>
 +
'''English''' |  
 +
[[AMule_is_slow-de|Deutsch]] |
 +
[[AMule_is_slow-es|Espa&ntilde;ol]] |
 +
[[AMule_is_slow-fr|Fran&ccedil;ais]] |
 +
[[AMule_is_slow-hu|Magyar]] |
 +
[[AMule_is_slow-it|Italiano]] |
 +
[[AMule_is_slow-nl|Nederlands]]
 +
</center>
  
 
== [[aMule]] is slow ==
 
== [[aMule]] is slow ==
 
+
So [[aMule]] is slow? This can be:
So [[aMule]] is slow? This can be due to:
+
  
 
*[[#Your fault|Your fault]]
 
*[[#Your fault|Your fault]]
Line 9: Line 16:
  
 
== Your fault ==
 
== Your fault ==
 
+
=== General guidelines ===
 
This is a list of issues which can be the reason for slow download speeds:
 
This is a list of issues which can be the reason for slow download speeds:
  
 
*A low value in "Preferences"->"Download limit".
 
*A low value in "Preferences"->"Download limit".
 
*A low value in "Preferences"->"Upload limit". Upload limits under 4 kbps limit your download speed to 3 times your upload speed. Upload limits under 10 kbps limit your download speed to 4 times your upload speed. Upload limits above or equal to 10 kbps give you unlimited download speed, limited only by the "Download limit" preference value (read [[FAQ_eD2k-Kademlia#Are_there_any_limitations_on_the_ED2K_network?|this link]] to know more about it).
 
*A low value in "Preferences"->"Upload limit". Upload limits under 4 kbps limit your download speed to 3 times your upload speed. Upload limits under 10 kbps limit your download speed to 4 times your upload speed. Upload limits above or equal to 10 kbps give you unlimited download speed, limited only by the "Download limit" preference value (read [[FAQ_eD2k-Kademlia#Are_there_any_limitations_on_the_ED2K_network?|this link]] to know more about it).
*Having [[FAQ_eD2k-Kademlia#What_is_LowID_and_HighID?|Low ID]].
+
*A too high value in "Preferences"->"Upload limit". Your line may get congested! (depends on your line-speed)
*Some [http://en.wikipedia.org/wiki/ISP ISP]s block or limit connections to the standard [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] [[FAQ_eD2k-Kademlia#Which_ports_do_I_have_to_configure_in_a_firewall_or_router_to_run_aMule?|ports]]. Try changing the port in "Preferences"->"Connections" to some other values.
+
*A too low value in "Preferences"->"Max Connections". There are not enough connections available.
 +
*A too high value in "Preferences"->"Max Connections". Too many connections are congesting your line.
 +
*A too low value in "Core Tweaks"->"Max New Connections". It takes very long to aquire sources.
 +
*A too high value in "Core Tweaks"->"Max New Connections". Your line gets congested, many new connections produce much overhead-bandwidth.
 +
*Having a [[FAQ_eD2k-Kademlia#What_is_LowID_and_HighID?|Low ID]].
 +
*Some [http://en.wikipedia.org/wiki/ISP ISPs] block or limit connections to the standard [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] [[FAQ_eD2k-Kademlia#Which_ports_do_I_have_to_configure_in_a_firewall_or_router_to_run_aMule?|ports]]. Try changing the port in "Preferences"->"Connections" to some other values.
 +
* Some ISPs are going even further in their attempts to make their clients really unhappy with their "quality" of service. They're throttling speeds based on protocol classification. So, high-bandwidth protocols like ed2k and torrent may get severe impact on speeds. You may want to enable traffic obfuscation for outgoing connections - enable '''Use obfuscation for outgoing connections''' option. In worst cases you may also use '''Accept only obfuscated connections''' options if your ISP completely blocks ed2k. And consider using ISPs which prefer to improve their networks rather than fool thier customers with fake speeds declarations.
 +
*Your firewall may be blocking some ports/protocols used by [[aMule]] and/or you did not forward these ports in your router (again, see [[FAQ_eD2k-Kademlia#What_is_LowID_and_HighID?|Low ID]]).
  
== The network's fault ==
+
=== Congested downlink or uplink cures for ADSL ===
 +
Many ADSL service providers set up their network so that routers buffer a lot of packets. This can cause severe performance problems; for example a congested uplink can cause a large reduction in downlink speeds too.
  
We're sorry to tell you that sometimes, the low speeds aren't due to a bad [[aMule]] code or a bad configuration, but due to other facts. This is a list:
+
The problem is described [http://WWW.LARTC.org/wondershaper in the WonderShaper page].
  
*The [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] is a slow network. In some other [[P2P]] networks you can easily download faster. The [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] network is one of the fastest [[P2P]] networks existing, but its main goal is availability. While on other popular networks you'll be able to download very fast, you'll quickly find out that in the [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] network there are millions of files you'll be unable to find in any other network.
+
As a rule it is important that on ADSL neither the uplink nor the downlink be used at 100% capacity. Usually 90-95% is a good idea (taking into account overheads too, as a 576KiB/s line cannot actually transfer that much).
*[[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|Credits]]. If you are running [[aMule]] for the first time or if you deleted some files in the ''~/.aMule'' directory, you'll have no [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|credits]]. [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|Credits]] grant fast downloads. If you don't know what they are, read [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|this]].
+
*The file's availability. Rare files, old files, extremly new files... this kind of files have very few [[FAQ_eD2k-Kademlia#What_is_a_source?|source]]s, so it takes quite some time for [[aMule]] to connect to some other [[client]] sharing it.
+
  
== Unverified hypothesis ==
+
Therefore ensure that on 576 Kb down/288 Kb up ADSL line total download speed is at most 52KiB in download and 26KiB in upload.
  
According to research done by HopeSeekr of xMule, the ED2K network *still* follows the 80-20 rule that hinders all other Peer-to-Peer networks, in a novel way.  With virtually all other p2p nets, 80% of the users leech off 20% of the uploaders.  With ED2K the main manifestation of the 80-20 rule (which shows up in *many* other natural processes) is that roughly 80% of the "high-bandwidth" (30kb/sec and above) and "small waits" (less than 5 minutes in a queue) are provided by roughly 20% of the clients on the entire network.  These are, in order of precendence (determined by HopeSeekr's httpd log mod for xMule):
+
If aMule is the only significant user of bandwidth, setting its maximum upload and download limits to somewhat lower than that, for example 42KiB/s for download and 21kiB/s for upload, does it.
  * eMule release mods (like ZZUL)
+
  * mlDonkey + EDonkey clients
+
  * Files running xMule's modified upload code (xMule 1.6.0+ and aMule)
+
  * eMule 0.30 and below
+
  * eMule 0.42 and above with few popular files
+
  
The devil's bargain is that eMule's credit-system, huge queues, source exchange, and lack of initial credit accreditation for clients with zero initial parts (e.g. first downloaders) forces the initial downloader to wait any where from 2 hours to 8 hours in a eMule-centric upload-source cluster. Typical eMule queues are measured in the thousands, the average upload segment is 9.28MB, making the average wait in any one particular queue approximately 6 hours. Shorter queues, critics complain, would simply cause the 80-20 rule to shift from bandwidth to file availability (something *I* thought BitTorrent radically disproves, but o well).
+
Otherwise if you have GNU/Linux you can run a traffic shaper that will regulate the total traffic bandwidth. Two ready made shaper scripts are
 +
[http://WWW.LARTC.org/wondershaper WonderShaper] and
 +
[http://WWW.sabi.co.UK/#sourcesSabishape sabishape].
  
Additionally, due to the abnormally large partfile size (BitTorrent's partfile sizes are dynamic and are generally no more than 150 KB) and eMule's lack of sophistication in selectively uploading them (it uses a pseudo-random process) causes the problem, unique to the ED2K network, of "missing parts"...a syndrome in which many thousands of people may have any particular large file, but one or more 9.28 MB parts are missing, due to the fact that the releaser did not effectively spread them to enough downloaders.
+
Another useful but minor improvement is to ensure that there aren't too many upload connections with too small bandwidth. For example with a 21KiB/s upload limit, not more than 7 upload connections, with 3KiB/s each. Probably no more than 5 is a tiny bit better.
  
All these problems have been fixed by a host of eMule mods, xMule, mlDonkey, and others, however due to the lack of a protocol consortium such as the [http://rfc-gnutella.sourceforge.net/ Gnutella Group], largely prevents these ideas from entering the mainstream ed2k network. A huge road block to this is that despite the existence of many independent ed2k clients, eMule maintains an extensive monopoly in the realm of clients (90 - 95% of all clients), which if nothing else causes the major ed2k server software (also a monopoly) to only consider contacting eMule (and its chosen allies) about critical server protocol changes.
+
== The network's fault ==
 +
We hate to break this to you, but slow speeds aren't always due to bad [[aMule]] code or bad configuration. Some factors may include, but not limited to:
  
Such an event happened in October 03, when lugdunum 0.44 introduced compulsive zlib support for all clients, after only informing eMule to its existence or how to implement it. In the aftermath of this decision, xMule stayed uncompliant for ~4 months, and the vast majority of its userbase moved to aMule, as HopeSeekr had been incapacitated for several weeks since and could not make the changes.
+
*[[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] is a slow network; The [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] network is one of the largest [[P2P]] networks in existance but its primary goal is archive availability. While you do get faster downloads with other popular networks you'll quickly find out that the [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]] network is home to millions of files you'll be unable to find on any other network.
 +
*[[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|Credits]]; If you are running [[aMule]] for the first time or if you deleted files in ''~/.aMule'' directory, you'll have no [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|credits]]. [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|Credits]] grant faster downloads. If you don't know what they are, read [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|this]]
 +
*File Availablity; Rare files, old files, extremly new files... these kinds of files have very few [[FAQ_eD2k-Kademlia#What_is_a_source?|sources]], so it takes more time for [[aMule]] to establish a connection with the few [[client|clients]] sharing it.
 +
*Large [[queue|queues]]; [[eMule]], as well as most of its offspring use large [[queue|queues]]. [[aMule]] defaults to a queue size of 5,000. This ensures that users cannot cut in front of other [[client|clients]] by continuously re-asking the [[FAQ_eD2k-Kademlia#What_is_a_source?|source]] (an inherent problem in the days before [[eMule]]). One must be willing to wait in line and that can, for a new [[client]] with no [[FAQ_eD2k-Kademlia#What_is_all_that_credits,_rate_and_score_stuff_about?|credits]], take a long time. You might have to wait 2 weeks before a file is completed if, for example, there is only one [[FAQ_eD2k-Kademlia#What_is_a_source?|source]].
 +
*Not a really network fault but rather credit system behavior: if you share too many overpopular completed files, you may end up uploading almost only these files and very few useful uploads of files you're currently downloading. Hence, you will not get too much credits on remote clients which are useful for you and hence you may have low download speeds. aMule normally adjusts upload priority automatically so this effect should be somewhat limited but still may appear sometimes. You may want to lower upload priorities of overpopular completed files even more and boost upload priority of partially downloaded files higher. If you're suffering from this effect a way too much, you may even want to move away some overpopular files from shared folders. Please do so only if share ratio of file achieved values close to 1.0 or better to be fair. Moving away rare files makes little sense and only harms files availability. Do not do so. Technically, best possible speeds for huge files are usually achieved when you're sharing only what you're downloading, have very fast upload speed and there is lots of clients downloading same file as you do - uploading at big speeds to proper clients ensures that you will get downloads in return because of credit system. In real world your mileage may vary depending on settings, files and available upload bandwidth. Having dozen of rare files shared almost harmless (except some small overhead) since their uploads are rare and it makes network better. But sharing hundreds of completed overpopular files at once could be a bad idea sometimes. However, if you want to obtain good download speeds what really matters is a good upload bandwidth. Without good upload bandwidth you will not get too much credits regardless of any other actions. So if you can choose ISP, you may want to select ISP offering best upload speeds possible.
 +
*Check the [[FAQ network|network FAQ]].

Latest revision as of 04:31, 14 May 2009

English | Deutsch | Español | Français | Magyar | Italiano | Nederlands

aMule is slow

So aMule is slow? This can be:

Your fault

General guidelines

This is a list of issues which can be the reason for slow download speeds:

  • A low value in "Preferences"->"Download limit".
  • A low value in "Preferences"->"Upload limit". Upload limits under 4 kbps limit your download speed to 3 times your upload speed. Upload limits under 10 kbps limit your download speed to 4 times your upload speed. Upload limits above or equal to 10 kbps give you unlimited download speed, limited only by the "Download limit" preference value (read this link to know more about it).
  • A too high value in "Preferences"->"Upload limit". Your line may get congested! (depends on your line-speed)
  • A too low value in "Preferences"->"Max Connections". There are not enough connections available.
  • A too high value in "Preferences"->"Max Connections". Too many connections are congesting your line.
  • A too low value in "Core Tweaks"->"Max New Connections". It takes very long to aquire sources.
  • A too high value in "Core Tweaks"->"Max New Connections". Your line gets congested, many new connections produce much overhead-bandwidth.
  • Having a Low ID.
  • Some ISPs block or limit connections to the standard eD2k ports. Try changing the port in "Preferences"->"Connections" to some other values.
  • Some ISPs are going even further in their attempts to make their clients really unhappy with their "quality" of service. They're throttling speeds based on protocol classification. So, high-bandwidth protocols like ed2k and torrent may get severe impact on speeds. You may want to enable traffic obfuscation for outgoing connections - enable Use obfuscation for outgoing connections option. In worst cases you may also use Accept only obfuscated connections options if your ISP completely blocks ed2k. And consider using ISPs which prefer to improve their networks rather than fool thier customers with fake speeds declarations.
  • Your firewall may be blocking some ports/protocols used by aMule and/or you did not forward these ports in your router (again, see Low ID).

Congested downlink or uplink cures for ADSL

Many ADSL service providers set up their network so that routers buffer a lot of packets. This can cause severe performance problems; for example a congested uplink can cause a large reduction in downlink speeds too.

The problem is described in the WonderShaper page.

As a rule it is important that on ADSL neither the uplink nor the downlink be used at 100% capacity. Usually 90-95% is a good idea (taking into account overheads too, as a 576KiB/s line cannot actually transfer that much).

Therefore ensure that on 576 Kb down/288 Kb up ADSL line total download speed is at most 52KiB in download and 26KiB in upload.

If aMule is the only significant user of bandwidth, setting its maximum upload and download limits to somewhat lower than that, for example 42KiB/s for download and 21kiB/s for upload, does it.

Otherwise if you have GNU/Linux you can run a traffic shaper that will regulate the total traffic bandwidth. Two ready made shaper scripts are WonderShaper and sabishape.

Another useful but minor improvement is to ensure that there aren't too many upload connections with too small bandwidth. For example with a 21KiB/s upload limit, not more than 7 upload connections, with 3KiB/s each. Probably no more than 5 is a tiny bit better.

The network's fault

We hate to break this to you, but slow speeds aren't always due to bad aMule code or bad configuration. Some factors may include, but not limited to:

  • eD2k is a slow network; The eD2k network is one of the largest P2P networks in existance but its primary goal is archive availability. While you do get faster downloads with other popular networks you'll quickly find out that the eD2k network is home to millions of files you'll be unable to find on any other network.
  • Credits; If you are running aMule for the first time or if you deleted files in ~/.aMule directory, you'll have no credits. Credits grant faster downloads. If you don't know what they are, read this
  • File Availablity; Rare files, old files, extremly new files... these kinds of files have very few sources, so it takes more time for aMule to establish a connection with the few clients sharing it.
  • Large queues; eMule, as well as most of its offspring use large queues. aMule defaults to a queue size of 5,000. This ensures that users cannot cut in front of other clients by continuously re-asking the source (an inherent problem in the days before eMule). One must be willing to wait in line and that can, for a new client with no credits, take a long time. You might have to wait 2 weeks before a file is completed if, for example, there is only one source.
  • Not a really network fault but rather credit system behavior: if you share too many overpopular completed files, you may end up uploading almost only these files and very few useful uploads of files you're currently downloading. Hence, you will not get too much credits on remote clients which are useful for you and hence you may have low download speeds. aMule normally adjusts upload priority automatically so this effect should be somewhat limited but still may appear sometimes. You may want to lower upload priorities of overpopular completed files even more and boost upload priority of partially downloaded files higher. If you're suffering from this effect a way too much, you may even want to move away some overpopular files from shared folders. Please do so only if share ratio of file achieved values close to 1.0 or better to be fair. Moving away rare files makes little sense and only harms files availability. Do not do so. Technically, best possible speeds for huge files are usually achieved when you're sharing only what you're downloading, have very fast upload speed and there is lots of clients downloading same file as you do - uploading at big speeds to proper clients ensures that you will get downloads in return because of credit system. In real world your mileage may vary depending on settings, files and available upload bandwidth. Having dozen of rare files shared almost harmless (except some small overhead) since their uploads are rare and it makes network better. But sharing hundreds of completed overpopular files at once could be a bad idea sometimes. However, if you want to obtain good download speeds what really matters is a good upload bandwidth. Without good upload bandwidth you will not get too much credits regardless of any other actions. So if you can choose ISP, you may want to select ISP offering best upload speeds possible.
  • Check the network FAQ.