Thursday 24 December 2009

Performance Tuning your PC and Internet Connection

How to performance tune your Computer and Internet Connection

I recently had major issues with performance on my laptop and an intermittent slowdown which meant that I couldn't watch streamed movies (e.g YouTube) or remotely access my office computer due to the slow internet connection. Certain times of the day it was fine but at night it was generally bad. This article is based on the steps that I used to diagnose and overcome the problem. It can also be used by those of you who just wish to get the best performance out of your computers.

Is the problem related to your Internet speed or overall computer performance?

Are you only experiencing problems when you are on the Internet such as slow loading web pages, stuttering video streaming or videos just not playing. Or are you having problems running desktop applications such as programs that are slow to open or files that are slow to save. Is just navigating your PC a task in itself or are you experiencing popups all the time that you don't recognise asking you "To run performance checks", "Install this Spyware checker" or pages filled with adverts or links to advertisements that you don't know where they have come from?

Computer Related Problems

First thing is to ensure you don't have a virus, Trojan or Spyware on your PC.
  • If you use Internet Explorer to surf the Internet then there is a good chance you might have a virus as this browser is well known for its many security holes. Consider changing your browser to either Chrome or Firefox. Chrome is a very fast browser and Firefox is a favourite of developers due to the huge number of add-ons available for it.
  • If you use a PC Make sure you install any Windows updates as they reguarly contain patches for security vulnerabilities.
  • If you don't have a virus / spyware checker installed then download one of the good free ones e.g Malwarebytes Anti-Malware, Spybot Search and destroy, Ad-Aware or even better download multiple applications as its not uncommon for one app to find items that another one will not. Remember to always update the virus definitions before running it.
  • If your virus software doesn't find a virus it doesn't mean you don't have one it could just mean that its either a new virus that definitions haven't been created for or its already managed to take hold of your PC and block any virus checker from finding it. Try running a program such as Trend Micro's HijackThis which checks for suspicious looking processes and activity on your PC rather than looking for known virus definitions. If you are unsure about a flagged item you should send the outputted report to one of the recommend forums where specialists will analyse the report and give you detailed info on any action required such as running the Trojan removal tool SDFix.exe.
Once spyware and viruses have been ruled out you should run some basic maintenance on your computer which can be done manually or by downloading one of the many optimiser tools that are available on the net. I have investigated many of these tools and by far the best one I have found is TuneUp Utilities which offers all the tools you need to clean and speed up your PC and browser with a very easy to use interface.

TuneUp Utilities 2010

It offers the ability to modify computer and browser settings to speed up your browsing, remove un-used programs, clean up and defrag your hard-drive and registry, speed up your PC by disabling a number of memory and CPU intensive operations that offer little benefit and much more. There is also a "One Click Optimiser" button which checks your system and offers the solutions. If you want to save a lot of time downloading numerous tool or doing it all by hand then this is the tool for you.

Tuning up your PC Manually

  • Defrag your hard-drive. Over time your disk will get fragmented as new files are added and existing ones are edited or deleted. A heavily fragmented drive slows down file retrieval and saving. You can do this through the Accessories > System Tools > Disk Fragmenter option or you can download a tool like Defraggler to do this for you.
  • Remove old programs and shortcuts to those programs if you never use them any-more. You can use the Add-Remove programs option from the Control Panel to do this or download a program like CCleaner which offers a number of options to help clean up your computer.
  • Remove anything from your startup menu that you hardly use or don't require to be running when you start-up your computer.
  • Clean up your Registry. Often when files are installed or deleted keys are left in the registry that are no longer required. Like any database the more useless information it contains the slower the retrieval of useful info becomes. A tool like TuneUp Utilities or CCleaner offers you the ability to do this easily without having to trawl through the registry looking for keys by hand.
  • Disable memory and CPU intensive operations that run in the background when you require optimal performance. For example disk defragmentation or a full virus scan will slow down your PC when running. This is one of the good things about TuneUp Utilities Turbo Mode as it can be set on or off when required and will ensure that any CPU or Memory intensive operations can be disabled when you require optimal performance.
  • Configure the advanced settings in Control Panel > System > Advanced > Performance.
    1. Under the Visual Effects tab you should set the option to "Adjust for best performance".
    2. On the Advanced tab you should ensure Processor Scheduling and Memory Usage is set to Programs
    3. For Virtual Memory make sure both the initial and maximum size are set the same which according to Microsoft its recommended that this should be 1.5 times your system memory.
    4. Under the Data Execution Prevention tab you should set to"turn on DEP for all programs and services except those I select"
  • Clean up your temporary browser files. Make sure your cache and Internet history doesn't get too large so clean all temporary Internet files on a regular basis. The cache is great for helping sites you regularly visit load quickly but the larger it gets the slower page loads get for all sites.
  • Remove any add-ons that you never use anymore. In Firefox the more add-ons you have the slower the browser can be when loading and they can even cause errors. You will often have duplicate add-ons e.g different versions of Java which can be removed.
  • Install Advert and Flash blocker add-ons if your browser supports it (Firefox, Chrome). Without having to load Flash files and other adverts the page load times can be increased dramatically.
  • Disable JavaScript by default. Not only do most web delivered viruses use JavaScript to infect new PC's it can slow down page load times and make pages seem unresponsive during certain events e.g window, DOM load. All browsers will let you disable JavaScript and in IE VBScript from their inbuilt Options. However to make it easier to set which sites have it on and off you can install add-ons such as NoScript or the Web Developer toolbar. A lot of sites use JavaScript to display adverts, load flash or other videos, validate form fields and deliver other forms of content. Therefore you may find that by having JavaScript disabled you have reduced functionality on many sites. However pages should load a lot quicker and if you do trust the site or require the missing functionality you can always re-enable it.
  • Disable 3rd party cookies. These are cookies that are not set by the site you are visiting and are usually used by advertisers for tracking the sites you visit so that they can deliver more targeted advertisiments. Even Google uses these kinds of cookies now and many people consider them an invasion of their privacy which is why most Spyware tools identify them as items to be removed. This is how to disable 3rd party cookies in the top 3 browsers.
    1. Chrome you can do this by going to Tools > Options > Under The Hood > Privacy > Cookie Settings > Accept cookies only from sites I visit.
    2. Internet Explorer go to Tools > Internet Options > Privacy and then set your Privacy level to Medium high which will disable most 3rd party cookies and some 1st party ones. This will still allow you to login to sites but should prevent all the tracker and advert cookies that accumulate as you surf the net.
    3. Firefox removed the option to block 3rd party cookies in version 2 saying it was impossible to accomplish however you can still do this by either installing an add-on called CookieSafe or changing your user preferences by entering about:config in the address bar and then searching for network.cookie.cookieBehavior. The possible values are 0 which accepts all cookies, 1 only accept cookies from the same server and 2 disable all cookies. Set it to 1 to block 3rd party cookies.
  • Enable Popup blockers and disable any un-used toolbars e.g Google, Yahoo etc.
  • In FireFox disable Firebug and any other DOM manipulating add-ons and only enable them when required. Firebug has steadily got worse over the years in slowing down sites due to all the extra functionality that has been added to it. Therefore it should only be used when developing sites or when you need to use one of its features. The same goes for any other add-ons that you only use on certain sites or at certain times. Having less add-ons to load will increase page load times.
  • In Firefox tweak your config settings to improve performance. Read this article on which settings to tweak to get the best performance possible.
Testing for Network Problems

If you are having issues with slow loading pages when browsing or video streaming then you need to find out whether the problem is local to your home or a general network problem that you need to contact your ISP about.

Before doing anything else you should get some basic details of your network if you don't know them already such as the IP address of your gateway to the internet. Open a command prompt window and type "ipconfig". You should note down the results e.g

C:\Documents and Settings\me>ipconfig

Windows IP Configuration

Ethernet adapter Local Area Connection:

Media State . . . . . . . . . . . : Media disconnected

Ethernet adapter Wireless Network Connection:

Connection-specific DNS Suffix  . :
IP Address. . . . . . . . . . . . :
Subnet Mask . . . . . . . . . . . :
Default Gateway . . . . . . . . . : 

Note down the IP address and the Default Gateway address. The IP Address is your computer and the default Gateway is your connection to the outside world. In this case its a wireless router which is then connected to the Virgin Cable box.

We can now test whether the network problem is with my PC to the wireless or the main router or somewhere else by doing some PING tests.

A "Ping" measures the time that passes between the initial send of the Ping, and the receival of the "Reply" by the machine you pinged. The amount of time that passes during a ping is slightly influenced by the amount of hardware the ping is passed trough, as each would have to relay the ping further. However, there is no set formula for this, as the ping speed also depends upon the speed of the network, how busy it is, and so on.

  • A ping to your default gateway should be very quick e.g 1-2 ms
  • A ping to other computers on your LAN should be between 1-10 MS (good)
  • Pings to external websites such as take anything from 20 - 150 MS anything under 50ms is good to an external site.
  • Pings to sites on the other side of the world that go through many hops e.g from the UK to should report times of <500ms if the network is good.
So lets do some ping's, first to my gateway then to and then to somewhere very far away e.g

C:\Documents and Settings\me>ping

PPinging with 32 bytes of data:

Reply from bytes=32 time<1ms TTL=128
Reply from bytes=32 time<1ms TTL=128
Reply from bytes=32 time<1ms TTL=128
Reply from bytes=32 time<1ms TTL=128

Ping statistics for
 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
 Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\me>ping

Pinging [] with 32 bytes of data:

Reply from bytes=32 time=32ms TTL=52
Reply from bytes=32 time=28ms TTL=52
Reply from bytes=32 time=32ms TTL=52
Reply from bytes=32 time=30ms TTL=52

Ping statistics for
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 28ms, Maximum = 32ms, Average = 30ms

C:\Documents and Settings\me>ping

Pinging [] with 32 bytes of data:

Reply from bytes=32 time=606ms TTL=48
Reply from bytes=32 time=526ms TTL=48
Reply from bytes=32 time=446ms TTL=48
Reply from bytes=32 time=445ms TTL=48

Ping statistics for
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 445ms, Maximum = 606ms, Average = 505ms

If you are suffering packet loss or long delays then should investigate further.

Another good test from the command prompt is either the tracert / traceroute command or pathping which will do a series of pings from your PC to the destination showing you the addresses of each router it has to pass through and any delay it suffers on the way.

For example lets try a pathping to

C:\Documents and Settings\me>pathping

Tracing route to []
over a maximum of 30 hops:
0 []
3 []
4 []
5 []
6 []
7 []
8 []
9 []
14 []

Computing statistics for 350 seconds...
Source to Here   This Node/Link
Hop  RTT    Lost/Sent = Pct  Lost/Sent = Pct  Address
              0/ 100 =  0%   |
1    0ms     1/ 100 =  1%     1/ 100 =  1%
              0/ 100 =  0%   |
2  ---     100/ 100 =100%   100/ 100 =100%
              0/ 100 =  0%   |
3   14ms     4/ 100 =  4%     4/ 100 =  4% []
              0/ 100 =  0%   |
4   16ms     2/ 100 =  2%     2/ 100 =  2% []
              0/ 100 =  0%   |
5   14ms     2/ 100 =  2%     2/ 100 =  2% []
              0/ 100 =  0%   |
6   27ms     1/ 100 =  1%     1/ 100 =  1%
.net []
              0/ 100 =  0%   |
7   24ms     1/ 100 =  1%     1/ 100 =  1%
.net []
              0/ 100 =  0%   |
8   31ms     1/ 100 =  1%     1/ 100 =  1% []
              0/ 100 =  0%   |
9   33ms     0/ 100 =  0%     0/ 100 =  0%  158-14-250-212.static.virginmedia.
com []
              0/ 100 =  0%   |
10   25ms     1/ 100 =  1%     1/ 100 =  1%
              0/ 100 =  0%   |
11   37ms     1/ 100 =  1%     1/ 100 =  1%
              0/ 100 =  0%   |
12   39ms     1/ 100 =  1%     1/ 100 =  1%
              0/ 100 =  0%   |
13   41ms     0/ 100 =  0%     0/ 100 =  0%
              0/ 100 =  0%   |
14   35ms     0/ 100 =  0%     0/ 100 =  0% [

Trace complete.

If you are suffering severe packet loss between routers then that could signify a problem or it may just be that the router is not set up to respond to pings and therefore any ping to that IP would report a time out.

Another test is to compare whether the speeds promised by your broadband provider are actually being delivered to you. There are many speed test sites out there but I tend to use OR which will measure your download and upload speeds.

You should always do multiple tests and then take an average reading. When I was debugging the issue with my laptop and the wireless connection it had to my main PC and router I was alternating tests between both machines and recording the times to note any difference.

Broadband providers never seem to deliver exactly what they promise but if you are currently getting anything over 2Mbps you shouldn't be getting video streaming issues unless its High Definition movies. Upload speeds will always be a lot less than download speeds so don't expect equality on those two measurments however if like me you were getting periods of the day where your download speed was measured less than 100Kbps then there is definitely something wrong somewhere.

One thing you should remember when dealing with speeds on the net is that the measurements are different than those for disk space. 1Mb is one megabit and 1MB is one megabyte. You can always tell by the letter b as if its capitilised then its bytes and if its lower case its bits. Another thing to note is that a rate of one kilobyte per second (KBps) equals 1000 (not 1024) bytes per second.

If your network problems are intermittent then you should download a tool like networx which allows you to monitor your bandwidth usage, show hourly, daily, monthly reports, set limits on usage and run diagnosis tools such as tracert and ping but in a visual manner.

Run the bandwidth monitoring tool throughout the day and run hourly speed tests this should tell you whether your network problems happen at certain times of the day and provide you with evidence that you can then download as an XLS to provide to your ISP when you contact them to complain.

Wireless Network Issues

If like me you use a laptop that is connected to the main router by a wireless connection then you should rule out problems with the wireless set-up. Run some pings from your PC to the wireless router to check for any issues but ensure that your router is set-up to accept ping requests first.

  • Make sure you have the latest firmware, software and drivers in your router, modem and network adaptor. Communications and hardware companies are always updating the software inside their devices so you should make sure you have the most up to date drivers and other software for your equipment. You should be able to download this from the manufacturers website.
  • Tune your wireless access point. If you get substantially higher speeds when you connect directly to your broadband instead of using wireless networking, this can be due to interference from other Wi-Fi installations nearby, especially if you are in a city. Find out if there is a problem by plugging the network output from your broadband moden directly into the Ethernet port on your laptop or desktop and seeing if speeds improve. If so, try changing the channel of your wireless network: there'll be a setting in its configuration screen, which you can get to via your browser. Check your handbook for details of your router. You should also try moving your laptop around the house to see if you get a better or worse signal depending on where you are.
  • Make sure you are not getting electrical or radio interference from other devices in your house. Lots of gadgets including radios, media streamers, mobile phones and tools to send TV signals around the house use Wi-Fi and they're all sharing the same airwaves. Try turning off all electrical equipment to see if that improves the signal and then one by one turn them on again until you find the culprit. Even mains wiring that runs alongside telephone or network cables can cause a problem.
  • Whilst on the wireless network place your laptop right next to the main router and run some speed tests. If you are having issues with speed whilst directly next to the router then it maybe a problem with the wireless router itself or the wireless internet card your PC or laptop is using.
TCP / IP Tuning

Computers are shipped with default TCP / IP settings that are designed to work with all network speeds, dial ups, DSL and Cable. This means that you can tweak various settings so that they are optimal for your computer.

There are various tools that can help you do this easily such as TuneUp Utilities or there are those such as DrTCP or TCP Optimizer that allow you to view and edit various settings such as your MTU Maximum Transmission Unit or maximum packet size and RWIN (TCP Recieve Window). Out of both these tools TCP Optimizer offers the more configuration options, a registry editor and some tests to calculate your MTU correctly.

For those of you interested in what these values mean then the MTU is the maximum Ethernet packet size your PC will send. If a packet that is too large is sent then it will get split up into chunks (fragmented) and then re-assembled at the destination which obviously is not optimal. Therefore you want the MTU value to be the largest packet size that can be sent without becoming fragmented.

Unless otherwise set, Windows defaults MTU to 1500, or a lower value of 576 for external networks. 1500 is OK unless you are running PPPoE, want to use IPSec (Secure VPNs) or both, then it's too big. 576 is not efficient for the broadband/Internet as it's too small. For Windows VISTA users it's recommended to leave this value alone as apparently it does a pretty good job of automatically calculating these settings anyway.

You can calculate this yourself with the command prompt by doing the following tests.

Windows 2000/XP users:

ping -f -l 1472
(That is a dash lower case "L," not a dash "1." Also note the spaces in between the sections.)

Linux users:

ping -s 1472

OS X users:

ping -D -s 1472

Linux and OS X commands are case sensitive.

Press Enter. Then reduce 1472 by 10 until you no longer get the "packet needs to be fragmented" error message. Then increase by 1 until you are 1 less away from getting the "packet need to be fragmented" message again.

Add 28 more to this (since you specified ping packet size, not including IP/ICMP header of 28 bytes), and this is your MaxMTU.

If you can ping through with the number at 1472, you are done! Stop right there. Add 28 and your MaxMTU is 1500.

For PPPoE, your MaxMTU should be no more than 1492 to allow space for the 8 byte PPPoE "wrapper," but again, experiment to find the optimal value. For PPPoE, the stakes are high as if you get your MTU wrong, you may not just be sub-optimal, things like uploading files or web pages may stall or not work at all.

This example shows you how to do it by hand. If you you downloaded the TCP Optimizer tool go to the largest MTU tab and run the test. You will see that it does a similar test to the one below but obviously its automated to save you time.

C:\Documents and Settings\me>ping -f -l 1472

Pinging [] with 1472 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\Documents and Settings\me>ping -f -l 1462

Pinging [] with 1462 bytes of data:

Reply from bytes=64 (sent 1462) time=33ms TTL=52
Reply from bytes=64 (sent 1462) time=31ms TTL=52
Reply from bytes=64 (sent 1462) time=33ms TTL=52
Reply from bytes=64 (sent 1462) time=42ms TTL=52

Ping statistics for
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 31ms, Maximum = 42ms, Average = 34ms

C:\Documents and Settings\me>ping -f -l 1463

Pinging [] with 1463 bytes of data:

Reply from bytes=64 (sent 1463) time=32ms TTL=52
Reply from bytes=64 (sent 1463) time=29ms TTL=52
Reply from bytes=64 (sent 1463) time=30ms TTL=52
Reply from bytes=64 (sent 1463) time=32ms TTL=52

Ping statistics for
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 29ms, Maximum = 32ms, Average = 30ms

C:\Documents and Settings\me>ping -f -l 1465

Pinging [] with 1465 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

There you go the MTU is 1464 + 28 = 1492

The other settings available in the TCP Optimizer tool are:

This parameter controls the use of RFC 1323 Timestamp and Window Scale TCP options. Explicit settings for timestamps and window scaling are manipulated with flag bits. Bit 0 controls window scaling, and bit 1 controls timestamps.

Description: The TcpWindowSize parameter can be used to set the receive window on a per-interface basis. This parameter can be used to set a global limit for the TCP window size on a system-wide basis.

TCP Window size
This parameter determines the maximum TCP receive window size offered. The receive window specifies the number of bytes that a sender can transmit without receiving an acknowledgment. In general, larger receive windows improve performance over high-delay, high-bandwidth networks. For greatest efficiency, the receive window should be an even multiple of the TCP Maximum Segment Size (MSS). This parameter is both a per-interface parameter and a global parameter, depending upon where the registry key is located. If there is a value for a specific interface, that value overrides the system-wide value. See also GobalMaxTcpWindowSize.

Contact your ISP

If you have cleaned and tuned your computer and browser and optimised all your settings to rule everything else out and you're still having problems related to network speed then contact your ISP. Provide them with as much information that you have gathered as possible to show that the problem is not related to your computer set-up. If you have intermittent speed issues show them the charts from networx that you can print out (by hour, by day) to show the problem. Do not give your ISP a chance to blame the issue on your own PC or setup a with most companies they will try and get out of paying for something if they possibly can. You never know they may offer you a new modem and raise you from 2Mbps to 20Mbps like they did to me. Funnily enough as soon as the new modem was plugged in all my network issues were solved instantly!

Hopefully this article has been a good guide to performance tweaks and remember if you want to do it the easy way purchase TuneUp Utilities as it could save your a lot of time, effort and heartache. I don't often recommend software to buy but for only £29.99 you cannot really go wrong when compared with the amount of time you will save.

TuneUp Utilities 2010


Anonymous said...

Thanks Rob

This detailed document has been a valuable piece of information which has helped me diagnose my own network problems and helped me resolve a number of issues which were slowing down my internet access.

I cannot thank you enough for this!

Rob Reid said...

Well the best way of showing your appreciation to me and my work is by making a donation to help me keep my numerous sites running.

You can find the donate button at the bottom of this page >>

Any amount would be very much appreciated.

US VPN said...

Thank you for sharing the topic about fine tuning your connection.

Graham said...

Thank you for this solution for PC and internet connection performance. I do have this kind of problem a lot. I usually thought that it was the internet server. But I was wrong.

Rob Reid said...

Please note this was written over 6 years ago so many of the programs, tools and Command Line performance tips may no longer work unless you are still using Windows XP!