Optimizing for low bandwidth OR my site is slow in eastern hemisphere
September 6, 2006
I thought this issue was long dead and buried. Then I saw this post in asp.net forums here – Calvin wondering how to improve the speed of his site in different parts of this world ( whether replication is the only option). Here is my reply, reproduced.
1) Buy bandwidth from local ISPs of slow locations: So if the Chinese users complain about speed, buy a dedicated IPLC link to that ISP ( Or some ISP you know is the Internet backbone of that country), broadcast your servers IP address there, and the users will not have to come thru the national Internet gateway or bottleneck.
2) Cache static content locally: Use services like Akamai.
3) Read only DB replication: replicate the DB one way, the local instance is read only and central is read write. The application needs to ensure that it looks at the local read only connection pool for fetches ( which hopefully will be 90% usage) and use the central database for any updates/inserts. Once you use this approach, you should be able to optimize it somewhat by doing the updates asynchronously, and in bulk, at end of flow only.
4) Minimise HTML size: review the html and optimize.
5) Maximise local cache: make as much part of the page an included .js file as possible. The .js will be cached at client browser.
6) Use HTTP compression – its just a setting on IIS server.
7) Minimise transfer size: Use Ajax to just get the specific portions of page.
8) Use trickle feed to make the users feel they are seeing content faster. In olden days, nested tables were not used as browsers don’t render an entire table till they see the end of it, now Ajax allows that.
In case you do replicate, there are intelligent DNS servers available which – based on the originating IP address, redirect users to their nearest servers.