We have started to run our own DNS servers located in Asia since that's where our main audience is. However, it seems that some users in the US are having difficulties accessing our website sometimes. I've noticed myself that DNS lookups of our domain from the US are relatively slow (500 msec+). Maybe the problems some users are having are due to other DNS configuration errors, but in general, how much of an issue is the geographical location of DNS servers? Should we have an additional server in the US?
DNS lookups of our domain from the US are relatively slow (500 msec+).
This is not asia - this is a crappy provider.
I am in europe myself. My latency to US machines is 150ms, 125ms from a german data center to my machines in Chicago.
Now, I fail to see how Asia could be more than 5 times as aar as Germany. Even if you route the Asia traffic via Europe (which is stupid to start with) this is still a LOT too much.
At the end, the problem is not geographic location but a provider that is badly connected.
THAT SAID: adding a servr in US wont help as DNS Servers are choosen round robin - it would only help when you put up a rreginal aware IP Multicast solution.
I Would suggest moving DNS to some specialist companies. Cheaper and they handle the issues for you.
But HALF A SECOND is too much. WAY too much.
A thing that might be relevant is the TTL of your zone. If you have a high TTL, the zone will live in caches for a longer period of time, and your customers are more likely to fetch those instead.
There are of course drawbacks with a high TTL, most prominent being the fact that changes takes longer to propagate. I suggest reading the insights of Chris Gonyea and the article regarding DNS/TTL at zytrax for more details.
The location of your DNS servers is more or less of an issue depending on your scenario.
Here are some insights:
- DNS latency is of less relevance for web applications, since most browsers nowadays perform DNS prefetching
- several sparse DNS servers is better than multiple co-located in your center of use
- most DNS resolvers pick the server to query based on previously measured response times
- you can expect average latencies of 200ms for DNS
- in our experience, the range of quality in routing among Asian providers is huge.
- for A to resolve from nameserver B, expect t = X/50 [millisec] where X is the approximate distance in kilometers
This said, 500ms for USA to Asia (where, exactly?) sounds too much. You may want to test known DNS servers located in Asia (e.g. f.ns.buddyns.com), to get a lower bound for what latency you can get.
Handing your DNS to some good DNS company will take care of it as TomTom advised is probably the best solution (though there's price).
Consider increasing TTL of your records, see Tommy answer.
It is a good idea to have DNS servers closer to your customers. Do it. It will often speed-up DNS resolution for part of your visitors. The closest nameserver will be used more often than others (but still not always).
BIND 9 used a simple method of measurement with decay to ensure that the best known server is used to resolve queries. If one server for a domain was 10 ms away and another was 80 ms, BIND 9 would use the 10 ms server most often, but still periodically try the one that was further away. (Source:ISC blog)
Latency of your Asian server may depend on it's Asian internet connection. Talk to your Asian provider and maybe ask other providers there if they can help you achieve better latency. 500ms really seems too much. (Btw, if by asia you mean china, there's some firewall there, maybe it adds it's latency ?) Maybe try
tracerouteto see what causes the latency.