Using cURL to Test the NOC CDN Performance against Fastly, Sucuri and CloudFlare

In our previous article, we shared details on cURL can be used to test the performance of a website, and how it can be used to troubleshoot performance issues. Building on that, we used the same technique to measure the performance of the NOC CDN.

We created test servers across multiple datacenters to get the performance (connect time, time to first byte and total time) for the NOC.org CDN.

As a fun exercise, we compared it to other CDNs to see how we fared against them.

Here is the command line we used to test, and something you can leverage as well:

for i in https://noc.org/ https://fastly.com https://sucuri.net https://cloudflare.com; do printf “%-30s” “$i”; curl -o /dev/null -w “Time first byte: %{time_starttransfer}\n” -s $i; done

Note that we are only printing the “Time first byte”, because the sites have different sizes and the total_time would be biased toward smaller sites. The time to first byte is the time it takes to establish the TCP connection, execute the TLS setup, send the GET request and be ready to receive the first byte from the network. We find it to be a pretty good comparison to see how close the datacenter is and how well it can handle the connections for users in those regions.

These are statistically significant results, we did it simply to spot check and assess the network and it’s something any administrator can leverage to spot check their own assets.

/northamerica/usa/east/atlanta/linode
1 https://noc.org/ Time first byte: 0.020971
2 https://fastly.com Time first byte: 0.022434
3 https://sucuri.net Time first byte: 0.056231
4 https://cloudflare.com Time first byte: 0.090837
/northamerica/usa/east/newyork/linode
1 https://fastly.com Time first byte: 0.013944
2 https://noc.org/ Time first byte: 0.021746
3 https://cloudflare.com Time first byte: 0.071011
4 https://sucuri.net Time first byte: 0.072307
/northamerica/usa/central/dallas/linode
1 https://fastly.com Time first byte: 0.012236
2 https://sucuri.net Time first byte: 0.014088
3 https://noc.org/ Time first byte: 0.014594
4 https://cloudflare.com Time first byte: 0.021801
/northamerica/usa/west/losangeles/linode
1 https://sucuri.net Time first byte: 0.017072
2 https://fastly.com Time first byte: 0.018182
3 https://cloudflare.com Time first byte: 0.025590
4 https://noc.org/ Time first byte: 0.035017
/europe/london/linode
1 https://fastly.com Time first byte: 0.013625
2 https://noc.org/ Time first byte: 0.017678
3 https://sucuri.net Time first byte: 0.019420
4 https://cloudflare.com Time first byte: 0.028067
/europe/frankfurt/linode
1 https://noc.org/ Time first byte: 0.025391
2 https://fastly.com Time first byte: 0.026569
3 https://cloudflare.com Time first byte: 0.058988
4 https://sucuri.net Time first byte: 0.212045
/asia/tokyo/linode
1 https://noc.org/ Time first byte: 0.014528
2 https://fastly.com Time first byte: 0.016359
3 https://sucuri.net Time first byte: 0.025283
4 https://cloudflare.com Time first byte: 0.036701
/asia/singapore/linode
1 https://fastly.com Time first byte: 0.016341
2 https://cloudflare.com Time first byte: 0.036163
3 https://noc.org/ Time first byte: 0.041421
4 https://sucuri.net Time first byte: 0.504105

As you can see, our time to first byte was under 0.05 seconds on all the locations and faster than some providers across a few regions. In others, the results were close. Even in LA, where we were #4, it completed in 0.03 seconds, compared to 0.025 from CloudFlare. Not bad, but we definitely have room to improve.

Again, this was not a statistically significant test. To reliably test a CDN, you need to perform many more tests, across multiple locations, and another dimension – time.

It does, however, showcase that any one looking to try the NOC CDN is not going to lose anything, and in some areas might gain some performance.

It also begs the question, what are those areas most important to you? Does it matter if you’re slower in Singapore, if you only really care about Europe? The NOC CDN allows you to choose.