There are number of modes of speeding up a website which CDNs can help deliver. Depending on the vendor, these modes can be packed up into one bundle or offered as premium add-ons to the basic caching and offload service. One such often spruiked add-on product is Dynamic Site Acceleration (DSA). CDNs claim this is vital for sites which serve dynamic content. Lets have a look at how DSA works and how much difference it can really make.
How do CDNs Speed Up Websites?
Firstly, in order to define DSA, lets have a quick refresher on the ways in which CDNs can speed up websites.
a) Caching Content at the Edge of the Internet
The first and most obvious website optimisation technique is to keep copies of your content closer to your users. This reduces the roundtrip time from the users computer to fetch the content and return it the users browser. (Lets not forget the origin offload benefits here too!)
b) Providing Web Content Optimisation for Acceleration
Some CDNs provide optimisation services which manipulate the HTML and website assets to reduce the number of roundtrips a browser must make to collect a webpage and improve the ability of a browser to render that web page expediently.
c) Dynamic Site Acceleration
Acceleration of the delivery of dynamic (often thought of as uncachable) content by improving the network paths between a browser and the origin servers.
What is Dynamic Content?
When content is not available in the CDNs servers, then the browser will make a return trip to the origin servers for that content.
Content may not be in the CDNs servers either because
- It has not been requested through the CDN previously and therefore the cache of the CDN has not had an opportunity to prime with the content; or
- The content is explicitly prevented by the website logic from being cached at the CDN.
The second of these reasons is often the case for dynamic content. Dynamic content would include page items such as;
- A users name in the page (as in Welcome Stewart) when the user is logged in;
- My Cart information if I have placed items in a cart on a shopping site
- Customised content delivered based on my personal details
- Stock Availability or pricing (can be less dynamic than other dynamic content)
How Does DSA Work?
To make the round trip from the users computer out over the Internet and to the origin to collect the dynamic content, the computers requests will ordinarily be routed using Border Gateway Protocol (BGP). While much of the Internets content is routed using this protocol, it is not necessarily going to find the most direct (or fastest route) between the users computer and the origin servers.
DSA is about network optimisation. DSA purports to optimise the TCP connections and find faster, more available routes for traffic which needs to travel to the origin servers. DSA can do this by interrogating the network paths and selecting those which are displaying the best available combination of congestion and packet loss. Sounds good?
How Much Impact Can DSA Have?
DSA only affects those requests which need to go back to the origin to be serviced. I.e. those which were not serviced by content cached at the CDN. So how many requests is that for an average page and how much will DSA improve those requests?
According to HTTP Archive, there are now (on average) 95 requests per page. (interestingly, we are also up to 1.6MB per page!)
Our customers are seeing circa 90% of requests offloaded to the CDN so that leaves 10% of the 95 requests (or say 9.5 requests) which need to go back to the origin servers and are therefore available to be optimised by DSA.
Big breath, lets do some maths…..
The theoretically fastest possible delivery time for a request between a computer and the origin servers would be say the speed of light over fibre; Circa 207,000 klms per second or 69% of the speed of light. (which is in the ballpark of signal over copper give or take a few thousand kilometres per second).
If the origin servers are 1000 klm away from the requesting computer, the fastest roundtrip time will be 9.67ms. We have found that roundtrip times over our sample studied averaged 171ms.
Modern browsers handle a minimum of 6 connections on the same hostname up to a maximum of 13 while on multiple hostnames concurrent connections top out at 60! (well done IE mobile9).
If we take an average number of concurrent connections of 8, to serve our 9.5 requests to origin, then we have to consider what impact DSA will have on reducing a possible 203ms (8connections/9.5requests x 171ms).
So, if DSA can cut 10% (and I suspect thats generous) off the network transit time, DSA will deliver a faster webpage by 20ms.
20ms is not enough.
Finding faster routes to origin sounds like a great idea and the concept of improving the deliverability of dynamic content is definitely a good thing. I dont think DSA is the answer. Those CDNs who do sell DSA generally provide it as a premium product and will call it out as a differentiator against the competition. I have never seen any data from the CDNs who do provide DSA which can clearly indicate the benefit.
I believe there better ways for web owners to accelerate dynamic content for their users which will have significantly greater bang for buck!