Generally speaking, people don’t always ask in what region a server is hosted. They assume the host will make the best choice. Or that the internet is everywhere so it doesn’t matter. People in South Africa further assume that since Gauteng is the biggest commerce centre for South Africa, Johannesburg and/or Midrand must be the best place to host a server, even if you’re clientele is international.
But have you ever asked yourself if this is technically correct?
To answer that question we can do some ping tests. Ping is a computer networking tool that determines latency. Latency is the time taken for a data packet to travel from A to B and back again.
In our tests below, we ping from Cape Town to Johannesburg. We do the same test in the opposite direction.
We also ping from Cape Town to London, and from Johannesburg to London.
Scroll down and look for the results in bold.
Test 1 – Ping Johannesburg from Cape Town
[user@Capetown ~]# ping Johannesburg PING Johannesburg (xxx.119.250.yy) 56(84) bytes of data. 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=1 ttl=58 time=20.7 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=2 ttl=58 time=20.8 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=3 ttl=58 time=20.8 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=4 ttl=58 time=21.3 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=5 ttl=58 time=21.0 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=6 ttl=58 time=20.7 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=7 ttl=58 time=20.8 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=8 ttl=58 time=20.8 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=9 ttl=58 time=22.9 ms 64 bytes from xxx.119.250.yy (xxx.119.250.yy): icmp_seq=10 ttl=58 time=21.4 ms ^C --- Johannesburg ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9013ms rtt min/avg/max/mdev = 20.700/21.164/22.975/0.676 ms
Test 2 – Ping Cape Town from Johannesburg
[user@Johannesburg ~]$ ping Capetown PING Capetown (xxx.44.38.yy) 56(84) bytes of data. 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=1 ttl=56 time=22.4 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=2 ttl=56 time=21.6 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=3 ttl=56 time=28.2 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=4 ttl=56 time=21.0 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=5 ttl=56 time=21.2 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=6 ttl=56 time=20.9 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=7 ttl=56 time=23.1 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=8 ttl=56 time=21.4 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=9 ttl=56 time=22.0 ms 64 bytes from xxx.44.38.yy (xxx.44.38.yy): icmp_seq=11 ttl=56 time=22.2 ms ^C --- Capetown ping statistics --- 11 packets transmitted, 10 received, 9% packet loss, time 10010ms rtt min/avg/max/mdev = 20.953/22.447/28.281/2.056 ms
Tests 1 and 2 summarise Cape Town to Johannesburg and the other way around. It should be exactly the same and indeed it is approximately 22 milliseconds both directions. The minute fluctuations are there because networks get busier at certain intervals. These tests were also done during peak hours.
Next, we move onto Cape Town to London and Johannesburg to London.
Test 3 – Ping London from Cape Town
[user@Capetown ~]# ping London PING xx.80.70.y (xx.80.70.y) 56(84) bytes of data. 64 bytes from xx.80.70.y: icmp_seq=1 ttl=107 time=155 ms 64 bytes from xx.80.70.y: icmp_seq=2 ttl=107 time=156 ms 64 bytes from xx.80.70.y: icmp_seq=3 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=4 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=5 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=6 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=7 ttl=107 time=153 ms 64 bytes from xx.80.70.y: icmp_seq=8 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=9 ttl=107 time=152 ms 64 bytes from xx.80.70.y: icmp_seq=10 ttl=107 time=152 ms ^C --- London ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9012ms rtt min/avg/max/mdev = 152.422/153.282/156.831/1.546 ms
Test 4 – Ping London from Johannesburg
[user@Johannesburg ~]$ ping London PING xx.80.70.y (xx.80.70.y) 56(84) bytes of data. 64 bytes from xx.80.70.y: icmp_seq=1 ttl=101 time=172 ms 64 bytes from xx.80.70.y: icmp_seq=2 ttl=101 time=172 ms 64 bytes from xx.80.70.y: icmp_seq=3 ttl=101 time=171 ms 64 bytes from xx.80.70.y: icmp_seq=4 ttl=101 time=171 ms 64 bytes from xx.80.70.y: icmp_seq=5 ttl=101 time=171 ms 64 bytes from xx.80.70.y: icmp_seq=6 ttl=101 time=172 ms 64 bytes from xx.80.70.y: icmp_seq=7 ttl=101 time=171 ms 64 bytes from xx.80.70.y: icmp_seq=8 ttl=101 time=171 ms 64 bytes from xx.80.70.y: icmp_seq=9 ttl=101 time=172 ms 64 bytes from xx.80.70.y: icmp_seq=10 ttl=101 time=171 ms ^C --- London ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9010ms rtt min/avg/max/mdev = 171.908/172.087/172.973/0.299 ms
As you can see from our four tests, the latency from London is less to Cape Town than it is to Johannesburg. Also if you’re in Johannesburg it’s going to take about 22 milliseconds to get to Cape Town. Then going all the way from Johannesburg to London there is another extra 22 ms, 153 ms in Cape Town versus 172 ms in Johannesburg.
Considering on a local fibre ring latency is about 1 millisecond, 22 ms can be a very long time!
Next, we move on to ask ourselves why this is so? The answer is quite simple. Africa’s internet, contrary to popular belief, does not come from satellites. Africa’s internet comes from undersea cables. There is a huge international submarine network of cables that connect all the continents. The fact of the matter is that it is quicker for data to travel from Cape Town to London because the shortest route is underneath the sea.
To answer our original question about where to host, it’s clearly not that obvious as one would think. What makes it even more complex is that large providers, such as Google, Facebook, and Netflix have installed caches. This means that regularly used content is stored “locally” on super fast hard drives so that when the website is accessed it comes from the closest possible data centre. This is a great technical solution and the same employed by CDNs (content delivery networks). However, if you have ultra low application or database latency requirements, it could still make sense to host your server as close as possible to your end users.
AWS has announced that their first three data centres ever for Africa are to be built in Cape Town. This is not a mere coincidence or even because they love Table Mountain. The simple fact of the matter is that Cape Town is closer to the Internet (especially the Western Hemisphere / Europe) than the rest of South Africa.
When you’re hosting a VPS server with Vander Host, you have a choice of Johannesburg or Cape Town data centres or any of our 8 other data centres across the world.
Did you know?
Vander Host also offers AWS consulting services? From setting up your EC2 instances to deploying bare metals servers, and all the way to using S3 as an off-site backup medium. Contact us for more information