I noticed lately that I constantly experience slowness in web browsing, even loading of apps or games that uses internet (like youtube or arcane legends). I have a fast internet connection in terms of bandwidth with 1.5mbps. I checked also my connection's latency using pingtest.com and I have less than 50ms ping. I'm also using an iPhone 4s which is not a "slow" device when it comes to mobile internet and web browsing.
Understanding the factors that affects web performance
Going back to what I know (not what is known), lets understand first what are the things that affects web performance , internet or web browsing experiences:
- connection bandwidth or what most people know as "speed"
- Slower connection speed means longer time to download webpages or data
- latency of connection or what most people know as "ping"
- higher ping or latency translates to delayed response to request. Several consecutive requests takes a large hit it performance when latency is high. Slower the latency, the better. Logically, farther servers should have higher latency than servers nearer to you - provided that other aspects are the same
- This is dependent on how the routing is made between several gateways where your request originates from and the and server that will receive your request
- jitter - variation of latency or ping
- if latency varies largely (example highest ping is 1200ms lowest is 30ms) and the latency flactuates between a high value to a low value, we can say that a connection is laggy or unstable
- unstable connection results some request or connection dropping out due to problems in syncing or timing of responses which translates to some data or information not being received or sent completely. Example of this is when you load a webpage and sometimes some images are blurred or not downloaded completely or browser stops loading webpage on the middle part
- Browser or app optimization
- there are fast browsers and slow browsers, depending on how these browsers render webpage (how they utilize javascript, css etc or even interpret the html codes). It all depends on how they are coded by the developers and the level of optimization done
- Device speed & operating system or firmware
- Since browser or apps run on devices like PC, tablets or mobile phones, the browser performance also depends on the performance of the devices alongside the performance of the operating system
- Server
- Web browsing experience is also dependent on the performance of servers where your requests are sent. Basically, if the resources(CPU memory etc) is constant but the requests or load is increasing, we should expect a hit in the server's performance.
- Google servers for example are fast because they use thousands or even millions of computers to process your request, compared to lets say your home grown web server that uses typical hardware and software.
I guess i've covered the fundamentals ? Yes pretty much it (but tell me if i miss something, im not an expert in networking).
Not yet, some people do not give importance to this. The DNS server.
DNS Server , in layman's term are the server that translates www.facebook.com to the real address 31.13.68.0 which is in IP Address format. They're the reason you don't have to memorize addresses in numbers. There is more to this but lets skip that.
There are thousands of DNS servers although out the world. Some are fast and some are slow, depending on how optimized the code of DNS server is created or which hardware it is running or how far the DNS server to the one requesting the information. Even the quality of connection between the requesting end and the DNS server matters.
Your ISP or internet service provider has also one. By default, upon installation of your internet connection, it is most likely that you are using your ISP's DNS server. Sometimes, this DNS server provided by your ISP got so many request than what it can handle given the hardware resources it is allocated to. If this happens, even if your have super fast stable internet connection with low latency and Hardware and software connection that is blazingly fast, you can still experience slowness in browsing or internet experience because the request on the DNS (which is slow) bottlenecks the process.
What can we do to improve the DNS performance then?
You can't do nothing about the DNS performance since this servers are handled by the people or company that manages or provides them.
What we can do as end user is to switch to a DNS server that is faster. I have mentioned earlier that by default, we uses the DNS server provided by our ISP. It becomes congested as more users use its service. It is very likely that they also offer an alternate or back up DNS server.
In my case, I use BayanDSL as my ISP and they uses this DNS Server
203.115.130.72 - BayanDSL PHbut unknown to most (or to users who doesnt care) , they have another DNS server
203.115.130.74 - BayanDSL-2 PH
*there are DNS servers that are smart enough to distribute load to other DNS servers automatically. If this is the case, you dont have to update to the alternate DNS server because the primary DNS server does it for you, on the fly.
All you have to do now is change the DNS server that your device uses. For PC or Mac, you change the DNS server on the connection settings*. If you have a router or a gateway it is better if you update the DNS Server on that router or gateway instead of updating all the devices (one by one) that connects to the router. This way, if DNS server address changes, all you have to update is the router itself and not the devices connecting to it.
For tablets and mobile phones, i doubt if they have the capability to configure the DNS server they use. I checked my iPhone 4s and it has none. There might be a chance on stock android devices or jailbroken iOS devices or rooted android devices too. But im not sure. Best bet is to update the DNS server of the router your mobile devices connects to. That is if you have access to it :)
*just search the internet on how to change DNS server depending on your device
Aside from your ISP, there are also companies such as google, Open DNS and Ultra DNS etc that offer free public DNS. There are also companies who provides fast DNS servers as paid service like Amazon, DynDNS, DNS etc. The trick is finding the fastest DNS for you.
How do I determine which DNS server is the fastest for me?
You can ask around - to people who uses the same connection as you and same area - or you can find it our yourself.
In my case, I used namebench. Its a small application that you run on your PC. It seeks out the fastest DNS server that you can use and reports all the relevant information you can use. There are other application that does the same thing. You can search for them too.
Based on the test I've made, by changing to the recommended configuration, i can gain 44.8% faster in DNS performance.
I applied it on my router and I noticed an improvement to my browsing experience. Wether I access internet on my PC or mobile devices at home.
It's not a placebo effect, it really works. Although I can't measure if its really 44.8% faster :P
This is an original Hihey Mobile article. All rights reserved 2013.