Effect of distance from server on page load speed

performancetcp

I measured the load speed of a static image file severed by nginx from my server (using pingdom service). The server should normally process this request within few seconds. My server is located in Dallas, TX. When I used pingdom Dallas server, it took 200ms to load the file. This includes DNS resolving, and data transfer. Obviously for longer transfer, it should takes longer; but surprisingly this value was 800ms for NYC and 1.5s for Amsterdam.

The apparent conclusion is the role of distance for data transfer from server to client machine, and nothing connected to my server performance. However, when I checked this difference for major websites such as google and bing; the difference was only 50% (e.g. 200ms for US and 300s for Europe).

Is there something to be improved in my server to server long-distance requests?

Best Answer

+1 to Chopper3, but I'd also like to explain something.

Geographic distance has less to do with transfer than you would think.

What does matter:

  1. Your ISP's peering
  2. Their ISP's peering
  3. The route between those peers
  4. traffic shaping

Example 1: At my university, we get our internet through a state owned ISP. This ISP has it's own network and peers in chicago. Therefore, in order to connect to a house down the road, the connection needs to go all the way to chicago. Thus, it's much faster to communicate with something in chicago than to connect to something down the road.

I guess you need to think about it like roads rather than as the crow flies. Just because something is closer doesn't mean that it's really closer by internet. It also doesn't mean it's faster. This is extremely exaggerated with the internet. For instance, if one single "free way" between dallas and NYC is being saturated, it could be faster to transfer from europe to dallas.

Related Topic