Are you sick of reading bogus "speed up your Internet" tweaking instructions? Instead of bogus instructions, here's some actual free techniques that can be experimentally tested to see that they really work.
First, here's the benchmark that shows bad performance:
- On two of your machines hooked up to the Internet, upload a file on both machines. i.e. Send an email with a big file attached, upload a file to some web site, etc.
- While that's running on both machines, try to ping some close server on the Internet. For example, I ping a nearby university. You'll notice that the ping-times are 10x worse when both machines are uploading than when they're not uploading.
The instructions below explain how to use WinTC to limit the upload of the two machines so that your ping times will improve (i.e. when I do this, my ping times return back to their normal range even while the uploading is going on). Follow the instructions on both machines:
- Follow these instructions to install the QoS Packet Scheduler on your system. Most likely you already have this (you'll probably already see it listed when you follow the instructions).
- Download WinTC from this site. Expand the files to somewhere convenient like %ProgramFiles%\wintc
- Run the following to create a NT Service on your machine that will apply the bandwidth rules we're about to configure:
wintc -kc - Edit the wintc.conf file to have contents like the following:
# Uncomment this line if you only want this to apply
# to your first network adapter. You may need to
# use something like this if you have a network
# adapter that is disconnected. Run wintc -i
# to see the number-to-NIC mapping that
# WinTC uses.
#
#default_netif = 0
# This limits all upload on the machine to 20K/sec.
# You may have to tweak this for your particular
# connection.
define_flow = myflow 20K prio=3
define_filter = myfilter srcport=0/0
assign_filter = myfilter myflow - Run services.msc and configure the WinTC service to Startup type: Manual if you don't want WinTC's bandwidth rules to automatically apply at startup.
- Run the following to start the WinTC service to enable its bandwidth control rules:
net start wintc - Note that any error output will be saved to the event.log file in the directory where you put the WinTC files.
- When you want to disable WinTC's bandwidth control rules, just run:
net stop wintc
Once you've got that setup on both machines, try the benchmark scenario described at the beginning of the document. If you don't see a major improvement, try reducing the upload until you see an improvement. Once you see an improvement, it's trivial to run "net stop wintc" and then see how the performance decreases in a few seconds. Then run "net start wintc" to re-enable the rules and watch performance increase, etc. etc.
Further Tweaking Tips
- To make changes to the config, edit the wintc.conf file, then run net stop wintc, then net start wintc.
- To prevent from hosing yourself, you may want to write a small batch file that does the following:
net start wintc
sleep 30
net stop wintcThis will only use the WinTC rules for 30 seconds (presuming you have sleep.exe in your %PATH% :-)). Thus, if you write a bad rule that kills your network access, it'll only kill it for 30 seconds instead of permanently locking you out of your system. (Obviously, this is most useful when you don't have physical access to your machine where you're using the rules)
- Don't forget to check event.log for any error messages.
- When the WinTC NT Service is running, run wintc -i -v for verbose information on what rules are in use.
- The sample wintc.conf file above limits all traffic, including LAN traffic. The wintc_en.txt file that comes with WinTC explains more advanced syntax to allow full-speed for LAN traffic, but to limit Internet traffic.
- WinTC can also be used on web servers, dedicated servers, colocation servers, etc. to limit bandwidth from excessive users, etc.