Before reading this, ask yourself two questions:
1. Do I want to become more of a computer geek and learn something I might not know?
2. Does my internet speed (for example, browsing web sites and downloading e-mail) slow down when I am using BT?
If the answer is "yes" to either, read on...
The answer is in the
ACK!

When computers talk to each other they do so by sending what are called packets. A packet is a tiny bundle of data that goes from the host (a web server or BT seeder for example) to a client. The client receives the packet, ensures that it is good, and then sends an acknowledgement (called an
ACK in geek-speak) to the host machine telling it that all is good. Once the acknowledgement is received, the host computer sends the next packet and the process continues until all the data is sent, received and acknowledged. In a BT environment your machine will send, receive and acknowledge millions and millions of little packets as you download and seed torrents.
Now, your computer is pretty smart and can manage simultaneously sending, receiving and acknowledging packets from many sources at one time. However, the problem is that your bandwidth is finite. When you run out of bandwidth, the processes sending data and acknowledgements must wait until other processes complete, thus freeing up
upload bandwidth, before they can continue. This wait time is what causes BT downloads, browsing the web and downloading e-mail to slow to a crawl when using BT.
So let's put this to a real world, but very simplified, example...
You are seeding a torrent with all of your bandwidth and decide you want to surf the web for a while. So you fire up your browser and it connects to your home page. This web server starts sending you packets, but when your browser goes to acknowledge the receipt of the packets, there is no upload bandwidth available. So the acknowledgement queues up and waits... And waits... And waits... Finally, when the current BT packets your computer is sending to a leecher finishes, the acknowledgement is sent to the web server. Once the web server receives your acknowledgement it can then send the next packet... And guess what? The acknowledgement of that packet queues up and waits like the last. This goes on in this manner until finally the server is able to send you all of the data and you are able to view the web page.
So how do you prevent this from happening?
Buy a new computer? Get a new ISP? Get a faster connection? Dump your current client?
The answer to this is surprisingly simple --
set your global upload in your BT client to no more than 80% of your total upload bandwidth. This one little setting can make a
huge difference in how your PC interacts with the Internet as you are participating in BitTorrent.
By doing this you are creating a little buffer that allows your acknowledgements to be sent and received immediately without having to wait for bandwidth being used by your BT client to become available. Since ACK's will be sent faster, the machines sending you data can respond quicker and send you more data faster. This then increases your overall download speed -- not just for your web pages in your browser, your e-mail and your streaming video, but for your BT downloads as well.
How to do it?
First, you need to know your maximum upload speed. The easiest way to figure this out is just to watch your BitTorrent client for a while and observe your overall upload speed. Once you have this number, all you need to do is find 80%.
When I have mine going full tilt, I typically get around 60 K/sec. In my case:
60 * .80 = 48
Now, you need to set this in your BT client. In uTorrent this is done by clicking Options > Preferences... and selecting Connection. Under "Bandwidth Limiting" set "Global maximum upload rate" to the number found in the calculation (48 in my case). Once I set my client like this, I was able to surf the web, download e-mail and BT without any of the annoying slowdowns.
An advanced feature of uTorrent is the checkbox directly below "Global maximum upload rate" labeled "Alternate upload rate when not downloading"... If you tend to upload a lot when you are not on your PC -- overnight and when you are at work -- checking this and setting it to "0" will mean that your BT client will automatically switch into unlimited bandwidth speed when it has downloaded all torrents. Of course, once set, it will slow down your other internet activity while you are seeding... So it can be a bit of a PITA if you use your PC a lot to do stuff on the 'net.
Caveat #1: Do not set your maximum upload speed down too low. As was observed in another thread, BT is a tit-for-tat protocol and other leechers may limit the amount of data sent to you if you are not giving back to them. The more you give, the more "optimistic" other clients find you and the quicker you will download.
Caveat #2: Some older clients open a new window for each torrent and have no "global" setting -- the old Mainline (official) and BitTornado clients come to mind. If you are still using these ancient clients, you may want to consider upgrading to uTorrent.
Caveat #3: There does exist software that will prioritize your packets and allow you to perform other Internet functions at near full speed while you are uploading using all of your bandwidth. But this is another topic for another day.
