0

My servers are hosted in France (OVH) and my users are mainly from France.

I am starting to have more and more users in Asia and North America, but some of them have huge speed problems : more than 3-5 secs to load the page of my website. France users do not have any problem (< 0,1 seconds).

I have two users from Canada and from Singapore who were fed up with the slowness and decided to subscribe to a VPN. Since then, they no longer have any loading speed problems.

I am wondering if I can make something that would work like a free VPN for my users, by renting servers in North America in Asia, and somehow redirect users seamlessly to content hosted in France.

Is there a name for that?

Do you have any other suggestions?

(Just to let you know : I am already using CDN caching on static files)

1
  • 3
    If you rent a cheap virtual server in one of the affected countries, you can use it to run performance tests to your site in France and work out what the actual problem is.
    – Mike Scott
    Feb 7 at 15:16
1

I don't know what kind of content you provide, but my assumption, that you should rent servers in other locations, like Asia and North America, then configure them and enable GeoIP on your DNS-provider, like it could be done in Route 53.

1

So, it could be an issue with your CDN, because Cloud Networks replicates your website to varoious regions keeping latency low for all clients. You can try checking if your CDN is resolving correctly.

It could be that the Geolocation of your CDN provider is not working correctly, so the clients from Canada are getting redirected to a far region that is causing the slowness.

You can test this using various methods:

  1. A GeoLocation DNS Service
  2. Client can resolve from his machine and check the location of the result
  3. Check other CDN providers, such as Cloudflare or Amazon
1

Find out what the actual performance problem is.

Instrument your applications and measure the response time of each component. A trendy term for these tools is application performance monitoring (APM). Draw a diagram with every detail of how a user's request is served.

Measure from where the users are. Install performance tracking on either the actual user's computers, monitoring points from a cloud or colo facility close to them, or both. Ideally, track when their UI is ready. For web browser based applications, various timing data is available, through analytics packages such as Google Analytics.

Measure the network latency from them to you. TCP or UDP, ICMP is the control plane and possibly not accurate. Canada to France probably is on the order of 150 ms. An unoptimized application that makes, say, 20 requests to do a thing could easily take several seconds.

Get one of those VPN clients and test it yourself, from an affected geography. Compare the latency and traceroute over the VPN versus the internet. Figure out from peering and hops where it transited. The VPN provider may have better connectivity than you do.


All this just to find the problem, solutions could be any number of things. For example:

Add front end web servers closer to the users, such as in North America. Dynamic queries when the database is far away in France adds an additional challenge. Perhaps add a caching tier to the application so data referenced again doesn't need a full query. Or, replicate copies of the database so the queries can be local.


Do not expect "free". Pay for the services you use, so they stay in business and continue to support you.

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