Thursday, July 29, 2010

How to fix slow Internet browsing issue? - High download speed is not enough

I have a 20MBits/sec download Internet connection but recently I started seeing sluggish Internet browsing through FireFox and Crome. Page loading takes up a minute or more. When I perform a speed test(speedtest.net) on average I get 10MBits/sec download rate which is pretty good. But my site browsing was still slow. Whats going on! I started debugging the network to figure out where is the bottleneck. In the process I found couple of useful free network tools,

  • Visual trace route (http://www.yougetsignal.com/tools/visual-tracert/ ) - It tells you where in the network path packets are spending its time.

  • Routing Analysis tool (http://myspeed.visualware.com/servers/namerica/iad.php?testtype=-3&codebase=216.114.192.140&message=Route%20helps%20to%20diagnose%20connection%20problems&location=USA:%20Mankato,%20Minnesota&ver=8&map=namerica&provtext=HickoryTech%20Corp.&provlink=http://www.hickorytech.com/) - It gives a nice analysis report about every network hops and potential issues in each node.

  • tracepath, traceroute, dig - linux network hops tracing utilities.

After using these tools and analyzing the reports I realized that my network speed is okay as reported by speedtest.net, the problem was my ISP's(charter) DNS server which is very slow. So even though my download seed was fast but resolving the domain names were taking most of the time and so my sluggish browser performance.

Charter's tech support is useless, all they know is to reboot the cable modem. I kept telling them it is DNS server performance problem but they kept telling me reboot the cable modem. After few minutes of frustrating conversation I gave up on charter tech support.

My solution was to use opendns.com instead of my ISPs slow DNS. Signed up for a free account at opendns.com, pointed my wireless to the opendns.com's DNS server. Now my browsing is fast.

Not satisfied with the fast DNS, I went forward and installed a DNS cache proxy(dnsmasq) server in my local machine. Now my machines caches the domain lookup names from DNS and caches it so I never hit the DNS server more than once for a domain name.

Now my browsing is blazing fast :).

No comments: