Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a web application (.NET served from iis6) which serves near real-time data to end users. Our servers are sitting in a data center in North America, but our Australian users are experiencing unacceptable performance (no surprise). Given that we don't have unlimited resources what are some strategies to improve performance in Aus?

Placing a web/app server in Australia is the obvious answer, but we would also need our dbs replicated (fast approaching 100 GB) and given that the replication needs to be near real-time (up to a minute would be ok) that sounds like an expensive endeavor. Use of a CDN will help for static content.

Are there any other strategies I should be looking at to help the situation?

share|improve this question
1  
Internet in Australia is shit - there's no other way to describe it really. And DC bandwidth is crazy expensive (We're paying > $1500/month for 100Gb in one of our colo's). So I feel your pain, but there may be little you can do, because either your replication will be slow (because of rubbish internet), slow and expensive (if you lease a 1Mbps line in a DC), or fast but incredibly expensive (if you lease a 10 or 100Mbps line from a DC) –  Mark Henderson Feb 9 '11 at 1:36
add comment

4 Answers

If your data is stored in a RDBMS and is chiefly read-only your best bet may be to put a database slave & a read-only front end in Australia -- You should be able to maintain near-real-time replication (± 1 to 5 minutes delay) pretty reliably with that configuration provided your database doesn't have huge changes happening all the time. You never said how frequently you have DB changes / how large those change sets are, but typically DB replication can be done over relatively skinny pipes once the initial synchronization is out of the way.

This is something you should probably play with in a test lab first (using a traffic-shaping firewall to introduce latency and/or bandwidth restrictions to see what your minimum requirements are for successful replication). You would probably also want to ship a mostly-up-to-date DB and let it "catch up" on synchronization once it's installed in Australia to minimize the initial startup time...

share|improve this answer
    
The web app queries from a number of databases, the largest of which has very frequent updates (hundreds per minute), though the change set would be relatively small. –  cagreen Feb 8 '11 at 17:56
    
If the change sets are relatively small you shouldn't have trouble replicating the databases -- If you set up a lab environment you can get a feeling for how much bandwidth is required for the replication. –  voretaq7 Feb 8 '11 at 17:59
add comment

It depends on the number of users and how much control you have over their client setup but you could consider something like MS Terminal Services, Citrix or something similar in a Linux environment.

share|improve this answer
    
Unfortunately I don't have that kind of control over the client setup. –  cagreen Feb 8 '11 at 17:50
add comment

You might also consider having the application submit its DB updates to all locales (so long as the "updating" aspect of the app is in only one place), and then put the read-only segment of the app co-located to the local DB instance.

share|improve this answer
add comment

If the data that is displayed in each web request is small, moving the data around may not be the real problem.

It may be that the html returned by your app is bloated. If you can make the html smaller, your users will find it more acceptable.

You may also wish to move your server(s) to California. A good compromise location for serving US and AU.

share|improve this answer
    
> It may be that the html returned by your app is bloated Yes, thank you for that mr ViewState. –  Roatin Marth Feb 9 '11 at 14:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.