Updated: June 30, 2012
Here's an exercise for you. Launch your favorite search engine. Type in "utorrent upload download speed problem tweak" and watch all hell break loose. The simple reason is, you will be overwhelmed by the number of articles, guides and forum posts that discuss this particular issue.
Truth to be told, I faced it, too. In between changing my infrastructure bandwidth from a miserable 1.5Mbps line to 12Mbps, changing the ISP, changing my router, changing my operating systems, and finally installing a new version of uTorrent and altering some of the settings that used to work well in the past, I ended up having inconsistent upload and download speeds well below my set limits. So I started searching for a cure, not really knowing what the problem was.
When this kind of issue happens, you naturally start doubting your operational setup. Therefore, it is critical that you try to handle the issue carefully and methodically, without getting lost. Let me tell you how I did it and what my ultimate conclusion was.
utorrent version has changed
This piece sits highest at the top of the network connectivity stack; the program itself. There's been quite a bit of changes introduced in the program since version 2.0 or so, including uTP, bandwidth management, and other tweaks. So one might suspect that the latest version, at 3.1.3 at the time this article was written, might be at fault.
Course of action: install an older version and test; no difference.
Perhaps my settings were bad. And this is really the theory of chaos. I do not believe there is one single guide out there that can tell you what the correct settings should be. Most people recite the same uTorrent FAQ explanations for different options and then just randomly explain how it should be done. Then you get a hundred comments, half of which thank the poster for increasing their speed from 34KB/sec to 56KB/sec, while others lament the loss of speed by 51.37%.
In particular, much focus is placed on how much upload bandwidth you should allow, the total number of connections, with some regard to what most home routers can safely handle before choking, the number of connections per torrent, and the number of upload slots.
I must admit I tried everything. First, I changed the upload rate from unlimited all the way down to just 33% of my total. I changed the number of connections between as low as 100 all the way to 1000. I also played with the connected peers value and upload slots like mad. None of these made any difference.
After some more thorough reading, I invested some time fine-tuning rate limits, encryption, and advanced options, including the famous transport disposition setting, which governs the types of incoming and outgoing protocols support. And there's the half-open connection limit, intended for Window XP users.
Once again, nothing seemed to make any difference. I even completely deleted the program and all its settings and started from scratch; it was as if the world didn't pause to blink and wonder.
Comparison with other software
At this point, you might start wondering that something else in the network stack might be bad, like your firewall configurations, router setup, and who knows what else. At this point, you must invest in some statistical engineering and perform a component search.
I installed Deluge as well as fired up eMule, to see what gives. Deluge yielded identical results to uTorrent. eMule, however, manages its full share of download speed quickly and without any hiccups. This means that the network stack in Windows is all right and that it seems to work just fine, hence no further effort should be invested there.
So our problem focuses still on uTorrent, router, other components.
To be on the safe side, I fired up a Linux distribution connected on the same network and examined the throughput using Transmission. The results were equally unimpressive, further pointing out the problem is somewhere in the BitTorrent protocol and absolving Windows from any blame. But can BitTorrent really be blamed? Three different programs, and yet, so many satisfied users out there, who do not seem to share the same woes like me.
We go further down, and we now need to examine the router. The big difference between uTorrent and eMule, which seemed to have worked fine, is that uTorrent uses far more connections. This means that a weak appliance would handle single-threaded HTTP connections and low-overhead, low-connection-count P2P sharing well, but then choke on BitTorrent downloads and uploads. I also had the doubt of memory failing to assist me in my analysis, as the change of network topography in the past year or so left me wondering if something changed due to my intervention.
I even tried to draw a dependency graph, listing down dates when I upgraded my line, changed the ISP, changed the router, added this or that component or service into the equation, but I was not able to draw any clear conclusions. So I focused on the router.
In this case, we're talking Linksys WRT54GL, but for all practical purposes, it could be any which brand. Admittedly, the router was running an out-of-date firmware, so I took a tactical decision to upgrade it. Now, flashing a hardware component in my lexicon is tantamount to you undergoing a live surgery of your kidney without anesthetics. I ever only did it once before with the BIOS on my gaming rig, which proved to be a useful exercise.
However, I'd like to emphasize that I had a settings backup, plus a spare boxed router ready for use in case of an emergency or a hardware fault. So I did that. I flashed the router following the vendor's instructions, and it worked just fine. I mulled trying Tomato, but decided against it, in order not to introduce another unknown factor into the equation.
After the flashing, the router did offer a more responsive interface and some extra features, but the overall network performance remained unchanged - completely satisfactory for everything except torrents.
Now we're getting warmer. Again, due to my own madness and very peculiar needs, I happen to have two broadband connections at home, one via cables, the other via phone, connected through different ISP. The phone connection also happens to be listed under a business account. And of course, two routers.
So I spent a total of four seconds reconnecting my desktop rig from one router to another and testing the uTorrent connectivity. This time, everything worked smoothly. Within seconds, the program peaked the full alloted bandwidth and held steady until the file was downloaded. Likewise, uploads started the moment the torrent was seeded and worked just fine. Conclusion: bad ISP, it seems.
So I went about and replaced my ISP with another company the very next day. End result, full torrent speed, as it should have been, and as it was before my setup changed so much that I really forgot what might have caused the problem in the first place. Speed was aplenty, once more. For illustration purposes:
Now that I had a steady line and everything else checked and rechecked, I decided to invest some more time playing with different uTorrent settings to see how they affect the throughput. I would download one to six Linux distributions at the same time, starting with one, tweaking the settings while downloading, then repeat the process with additional torrents. At the same time, I would check latency to a handful of popular websites and try to browse the Web a bit. Nothing too scientific, just some basic testing.
My summary & recommendation - unless you have a very low bandwidth or a very high one, something like 100Mbps, you will most likely not see any difference in your uTorrent performance. There's a wide plateau between the extreme settings, which is completely indifferent to your tweaks. Overall, you have a fair amount of flexibility at your disposal, so you need not worry if you have 301 or 331 connections enabled.
I also learned that my Linksys router handles well all the way up to some 650 connections before a significant latency increase is felt, in the range of 20-30% and then dropping further. uTorrent maxed my connection easily anywhere above 80 connections. Upload cap did not seem to affect the downloads at all, as the overhead was just about 5-6KB/sec most of the time.
My relatively sad conclusion is that uTorrent tweaking is much like Windows tweaking, a meaningless exercise in placebo satisfaction. In most cases, the defaults are excellent and will work well for 98% of people. You also have a fair deal of flexibility, and the program is far less sensitive to your setup changes that you would expect.
This article also teaches you about not panicking much and being rather thorough and methodical about resolving your problems. While geeks have a natural tendency to overcomplicate things and invest in small details, like advanced settings and QoS and other weird things, something the truth is much bigger, bulkier and far simpler. And completely out of your control.
I would recommend you search for tools to check whether your ISP throttles the BitTorrent protocol, either by using online tests or consulting well-known lists that have some of the most notorious providers added there. Even so, you should always test on your own and make the right decision. Having two of everything helps - two programs, two operating systems, two routers, two connections. That way, you can easily pinpoint the problem.
I truly hope you enjoyed this.