Real-world CDN performance for Google DNS and OpenDNS users
Published on Oct 18 2012
This is article 3 in a series of three blog posts.
Two days ago we published Google DNS and OpenDNS usage stats and in yesterday's article we explained edns-client-subnet, gave an overview of which CDNs support edns-client-subnet and stated that the impact of not supporting edns-client-subnet on CDN performance is high for several CDNs, including Akamai. Today we present real-world performance data that backs this up and gives good insight in how CDN performance for Google DNS and OpenDNS users compares against all users.
Performance impact for small file static object
Below you see four charts, one for each of these countries: United States, Italy, Indonesia and Brazil. Each chart shows, for several CDNs, by how much median total time to download that 15 KB file improved or got worse for users on Google DNS, OpenDNS or either one of these public DNS services, versus all users.
The charts can help answer questions like:
In the US, do OpenDNS users get better or worse performance on Akamai?
Is CDN performance better on Google DNS or OpenDNS in Italy?
Note: a positive percentage means performance is worse, negative means performance is better.
Akamai performance degrades by 20% - 40% on both public DNS services and by that is the CDN that is most negatively impacted.
Performance of Internap, EdgeCast and CloudFront for Google DNS users is much worse than for all users, while it actually improves a bit for OpenDNS users.
ChinaCache needs to look into how they route OpenDNS users. Something is going horribly wrong there.
With the exception of the EdgeCast/Google DNS combination, for all CDNs that do anycast for HTTP (and Fastly), performance is slightly better for the users of the two public DNS services versus all users.
We analyzed ~280,000 measurements per CDN, except for Akamai (~80,000).The lower count for Akamai does not impact the data shown here. We validated that by looking at different 80,000 sized samples for other CDNs.
For most CDNs, performance improves a bit, on average circa 10%. But there are three CDNs who give Google DNS and OpenDNS users a relatively bad performance: Internap, Level3 and ChinaCache. Internap shows the same picture as for US: performance is much worse for Google DNS users, while slightly better for OpenDNS users. Level3 has no issues in the US, but in Italy OpenDNS users get almost a 100% worse performance compared to all users. ChinaCache seems to have the same issue(s) as in the US: fine for Google DNS users but a whopping ~170% worse performance for OpenDNS users.
Measurements per CDN is ~30,000 (Akamai ~20,000).
Google DNS and OpenDNS are very popular in Indonesia, so CDNs that want to deliver good performance there should make sure all is good for users of those public DNS services. The chart clearly shows that is far from true. Let's start positive: CacheFly and Bitgravity are the only CDNs that delivers better performance to users of both public DNS services. Performance of Highwinds, CloudFront, NetDNA and Fastly is only impacted a little bit and EdgeCast and CDN77 are not so bad either. Internap, CDNetworks, Level3, ChinaCache and Akamai are the ones that need to take action, and especially Akamai and Internap. They have the biggest, negative performance delta for Google DNS users (30%+) and Google DNS is far more popular than OpenDNS in Indonesia.
Measurements per CDN is ~80,000 (Akamai ~45,000).
The situation in Brazil is ... different.
There is really no CDN that delivers significantly better performance to Google DNS or OpenDNS users.
Only Highwinds delivers a mere 4% better performance to Google DNS users.
Highwinds has a local POP in Brazil and Google DNS has resolvers in Brazil and apparently this works out.
CloudFront, Akamai, CDNetworks and CDN77 also have POP(s) in Brazil, but they deliver relatively bad performance to Google DNS users, with Akamai performance being impacted most (+57% !).
EdgeCast stands out too with a ~40% worse performance for Google DNS users. That is odd, because EdgeCast does not have a POP in Brazil or in any other country in South-America. They always serve into Brazil from the US. So why is performance 40% worse for Google DNS users from Brazil? Are they serving from a different POP in the US? We don't know.
CloudFront is also likely serving from US instead of from their POP in Brazil.
Measurements per CDN is ~80,000 (Akamai ~45,000).
The big table
Select a CDN from the dropdown menu to view a table with the total time median delta for Google DNS, OpenDNS or the aggregate of these public DNS services, per country.
The column 'Pct' shows what % of users in that country used that DNS service and the column 'Delta' shows by how much CDN performance differs from performance all users get. By default the table is sorted on percentage of users on a public DNS service, from high to low, but you can sort on any column by clicking one of the small arrows.
A positive percentage means performance is worse, negative means performance is better.
All Public DNS
United States (Illinois)
United States (Michigan)
Many people use the Google DNS or OpenDNS services. From our data the combined 'market share' is ~8% globally, and in some (big) countries much higher. Both public DNS services allow CDNs to have the edns-client-subnet be passed on to them, so they can determine with more accuracy what the geolocation of the end-user is. In consequence, the CDNs can provide a better user experience by serving content from a POP closeby over a low-latency connection. We listed 9 CDNs that would benefit from supporting/using edns-client-subnet, and only two actually support edns-client-subnet: CDN77 and ChinaCache. Others, including Akamai, Internap and CDNetworks, do not currently. This really is too bad, because from the performance data we collected, it is clear these CDNs deliver (much) worse performance currently in many countries to Google DNS and OpenDNS users. We believe performance can greatly improve if they would support edns-client-subnet. But edns-client-subnet is not a magic bullet. The performance data clearly shows that some non-anycast CDNs (ChinaCache) need to do more and in some countries the anycast CDNs are not servicing the public DNS users as well as they should (EdgeCast).
Our final message is to Google DNS and OpenDNS: please make an effort to publish an uptodate map/list of the resolver locations, so CDNs can use that to keep their systems uptodate. Even better would be to proactively inform them of location changes. Maybe you do this already, but ... please crank it up a notch. Txs.