How to choose a speedy hosting provider
If you apply the best practices described in our technical section, your site will likely be among the fastest on the net. However, most people or organisations don’t have the expertise to implement the server-based strategies. Perhaps this is why there are about a quadrillion hosting companies on this planet that are more than happy to take care of the technical details for you. The most audacious will claim 100% uptime, servers with 64 core CPUs, terabytes of memory and multiple fiber lines to every continent and back. This sounds good, but how do you know whether their claims are valid? And even if they are, perhaps their resources are grossly oversold?
There are many articles on the web that will help you to choose a hosting provider, such as here and here. They make for good reading material albeit are shallow on the subject of performance. Hence, this article focuses on how to find a speedy hosting provider. If you already have an existing hosting contract, this article will suggest you several practices to measure the quality.
The performance statements of a generic hosting provider are so opaque that even for a seasoned expert it is hard to assess the actual quality of a company by just looking at their site. Potential customers therefore resort to secondary quality indicators such as external reviews or recommendations from friends. The good news: there are some practical test at your disposal that will give a solid indication of what to expect should you hire them.
First step is to determine what you want versus how much you are willing to pay. Perhaps an easier question is: how much would my business suffer if my site was slow or even unavailable for 4 hours? And 24 hours? If you do serious e-commerce, than it is easy to calculate the amount of lost sales for this time frame. On top of that comes the, slightly less tangible, loss of reputation and perhaps loss of customers to the competitor. Generally, for serious e-commerce sites the monthly costs for hosting are an order of magnitude smaller than the potential loss resulting from bad performance. This makes the relevance of costs in choosing a quality hosting provider quite small.
On to the performance requirements that you should define for a hosting provider? Those are availability, response time and peak usage behavior.
Availability can be expressed as percentage of the time. Most providers “guarantee” a percentage, anywhere between 99.7% and 100%. For your reference, 0.3% equals roughly one day per year. This seems acceptable, however: what if this one day of downtime is spread over the year so that there is a minute of downtime every day during peak hour? Secondly, who will measure this availability? Availability is a complex figure based on multiple aspects. If your site is available in Europe but unavailable in the US because of a broken sea cable, does this count as “available”? Furthermore, most companies exclude “announced maintenance” from their uptime guarantee, which essentially allows them to announce “maintenance” 30 minutes in advance. Finally, an uptime guarantee is only worth anything if there is a substantial penalty when the provider fails to meet the quality limit. Most companies will offer a “money-back” penalty. As we have noted that the revenue loss dwarfs the hosting costs, this might not be a attractive agreement to you.
Perceived response time is defined by three aspects: server-side generation, network transfer and local rendering. The provider can only influence the first two. To define acceptable response time limits, you should exclude the local rendering from your provider requirements. To do that, measure your site with Firebug to determine how long the rendering takes on an average computer (typically, anywhere between 0.5 and 3 seconds). Then define how long your typical user is willing to wait for a page, for example 5 seconds. Combining these yields the time that your provider has to make sure the page is built and delivered: the average response time limit.
Peak usage behavior is arguably the most important requirement. During your moment of fame, let’s say your commercial in the break of the Super Bowl, you want to make sure that your site is as fast as ever. It all boils down on the capacity requirements of your site on the underlying infrastructure versus the expected usage patterns. So how many visitors are you expecting at prime time? How long will they stay on your site and how many pages will they click? Visitors * pages / time gives you the expected capacity requirement on your site and this is the number you should tell your provider. Secondly, you should think of a contingency strategy. If the actual usage exceeds the estimated usage limit, what should happen? Do you accept degraded performance and to what level? Do you want your provider to scale up on demand? Or does it suffice to serve a simple version of your site instead?
Determining performance quality
I assume you have defined a set of performance requirement and you have a short list of hosting providers that on the surface seem trustworthy business partners. You have also tested them on basic quality, such as calling their incident response hotline outside office hours, ordering a test account, asking to restore a backup, etcetera. Now you are ready to really measure the performance.
No matter what a provider tells you about availability, you should be able to get an uptime figure from an independent source. Some reliable sources are Pingdom andServiceUptime. You should inquire your prospective hosting provider whether they are already being monitored by such parties and if they can send you the results. If not, feel free to submit the site of your provider at these services and let them monitor the actual uptime for you for a while.
The average response time and peak usage behavior is heavily influenced by the code that your site runs. In the case of turn-key software, you should ask your provider if they have similar installations that you can test-drive. If not, you should ask the provider if they are hosting resource monsters such as Magento so you can test these. If the first impression is promising, the next step is to ask for a testing environment where you can load your own installation. Also ask if the provider allows you to run performance benchmarks. The resource allocations should be comparable to a prospective hosting plan, so you can realistically determine the capacity limits of your future infrastructure. Also ask what resources are shared with other customers and whether the resources allocated to you are guaranteed or “fair use”. Obviously, the latter is no guarantee at all and you should be wary of such clauses. If you have set things up, perform a benchmark for different usage patterns: an isolated visitor, regular (average) usage and estimated peak time usage. If the results are not sufficient, you can ask your provider to add extra hardware or you could modify your code to add extra levels of caching.
There are many ways to define the quality of a hosting provider. This article has focussed on the speed and performance quality and has given several suggestions to measure said quality. Further reading on this site: the articles on ROI and Surviving Succes.