Choosing the best web hosting provider for your website is not an easy task. In this section we look at the performance, stability and the price point of web hosting providers and how to make an informed decision.
Performance Based Considerations
Latency and Bandwidth: Two Key Concepts To Understand
Before we start with our performance based considerations we need to explain two key concepts related to website performance: latency and bandwidth.
Latency is the amount of time it takes for a request from a device (such as a computer, phone or tablet) to arrive at the server. Latency is expressed in milliseconds.
The latency is affected by the distance between the client and the server. If the two are very far away, the propagation time will be bigger, as light travels at a constant speed over fiber network links.
The bits and bytes of a request are routed over different networks, all of which have a different maximum throughput. You can compare it with the number of lanes on a highway.
Because the latency is affected by the distance between the physical location of your visitor and the server it is very important to take a look at your target audience.
If your target audience is Europe then having your server located in a data center on the west coast of the USA isn’t a great idea.
Target Audience Of Your Site
To know the target audience of your site there are two options:
- If you have already an established website the chances are high you are already analyzing your traffic via Google Analytics or a similar tools. This makes it easy to find out your top visitor locations.
- If your site is new, you’ll need to establish who will be your target customer and where he is located. (eg. on a Dutch site this could be Belgium and the Netherlands).
In your Google Analytics account, go to the Geo -> Location report.
There you can find the Top5 visitor locations. Eg. for example
- United States
- United Kingdom
You can further drill down into State Level; for example:
- New York
Sometimes you’ll need to make a compromise, eg. when you have a lot of visitors from both the West coast of the US and Europe, the ideal location can be located on the East Coast as this combines the best response times for both Europe and the US.
The amount of bandwidth used will depend on the popularity of your site and also the type of content (hosting audio or video files for download will result in higher bandwidth needs). Most hosts have a generous allocation of bandwidth (100GB+ per month).
The rate at which you might use your bandwidth will be determined by the network performance and port speed of the host you’ve selected.
If you’re seeing speeds of ~10 MB/s then your host has a 100Mbit port speed, if you see speeds of 100 MB/s then the host has a 1Gbit port.
We recommend to choose a host which uses Gigabit ports from/to the datacenter where your server is located. With 100Mbit/s ports there is a much higher chance for congestion.
Tools For Testing Latency And Bandwidth
Ping latency checks from around the globe can be tested for free at http://cloudmonitor.ca.com/en/ping.php
To use the tool you’ll need to specify the hostname or ip adress of your server (in the case you already have bought it). If you’re still researching the perfect host, then you’ll need to find a test ping server from the web host company.
Google ‘<name of the webhost> ping test url’ or ‘<name of the webhost> looking glass’ to see if there is a public test URL. For example, RamNode hosting provider has Ping server at IP address 126.96.36.199 for their Atlanta US based server. If there is no test url available try to contact their pre sales support.
When executing the Ping latency check you can see the minimum round trip time, the average and the maximum round trip time. With round trip time we mean the time it takes for the request to reach the server at your webhost and the time it takes to get back the response to the client.
For client locations very near your server the round trip time will be very low: 25ms, while eg. clients from India or Australia which probably are much further away from your server are eg. in the 200ms range.
For a client in Europe and a server on the east coast of the USA, the round trip time cannot be much lower then 110ms (because of the speed of light).
To test the maximum download speeds of your webhost (bandwidth), search for Google ‘<name of the webhost> bandwidth test url’ or ‘<name of the webhost> looking glass’
Eg. a Ramnode server in Atlanta can be tested by going to http://lg.atl.ramnode.com/
You can also run a website check via Alertra.
When comparing web hosting plans, it’s important to compare the CPUs with the following checks:
- number of cores available for your VPS. If you have more then one core, work can be parallelized by modern OS and server software
- clockspeed of the CPU (512MHz to 3GHz)
- Actual Intel cpu model or AMD CPU model used.
Later in this chapter we will show you how to run some CPU benchmarks.
Writing and reading files from disk can quickly become a bottleneck when you have a lot of simultaneous visitors to your site.
Here are a few examples where your site needs to read files from disk:
- serving static HTML, CSS, JS files
- WordPress blog: reading the frameworks PHP code from disk
- Java server: reading the servers class files
- Database: reading database information from disk
Writing to the disk will happen less often, but will be also slower then the read speeds; here are some examples:
- Uploading images, video’s, … (eg. In a blog post)
- A social site with a lot of user generated content, needs to be stored in a persistent way
For WordPress blogs, with performant Disk IO you’ll notice that your pages cache and serve much faster.
Webhost servers are generally equiped with either:
- hard drive based disks
- SSD (Solid State Drives) based disks
- A combination of both (SSD cached)
A solid state drive uses memory chips to store the data persistently, while hard drives contain a disk and a drive motor to spin the disk.
Solid state drives have much better access times because there are no moving parts. They also have much higher read and write speeds (x MB per second).
There are a few downsides though:
- At this moment SSD drives are still more expensive then hard drive based disks, thus your webhost provider could also price these offerings to be more expensive.
- The second downside is that SSD drive sizes are smaller then the biggest hard disks sizes available. (Gigabytes vs Terabytes). This could be a problem if you want to store terabytes of video.
The third option SSD Cached – tries to solve the second downside; the amount of available disk space.
SSD Cached VPSs come with more space. The most frequently used data is served from SSDs; while the less frequently accessed data is stored on HDDs. The whole process is automated by the webhost by using high performance hardware RAID cards.
Our recommendation is to go with an SSD basd webhosting plan.
The following webhost providers have plans with SSD disks:
You’ll want 256MB or more for a WordPress based blog, preferably 512MB if you can afford it.
When running a Java based server we recommend to have at least 1GB of RAM available.
You should check how much bandwidth is included in your hosting package per month. For every piece of data that gets transferred to and from your site (eg ssh connections, html, images, videos and so on) it’ll be counted towards your bandwidth allowance per month.
If not enough gigabytes or terrabytes are included, you risk having to pay extra $$ at the end of the month.
Some hosts will advertise unmetered or unlimited bandwidth. This is almost never the case, they will have a fair use policy and could terminate your account if you go over the fair use limits.
The rate at which you might use your bandwidth will be determined by the network performance and port speed of the host you’ve selected. If you want a quick indication of speed you can run
from your Linux server.
If you’re seeing speeds of ~10 MB/s then your host has a 100Mbit port speed, speeds of 100 MB/s then the host has a 1Gbit port
We recommend Gigabit links from/to the datacenter.
Obviously if you can get a host with 1Gbit port speeds then that’s ideal but you also want an indication of what speeds you’ll get around the globe. This can easily be tested with the Network performance benchmark in ServerBear.
Benchmarking web hosting providers
How can you assess the performance of a webhost providers plan if you aren’t a customer yet?
You could ask for a free trial, so you can run benchmarks on the server itself. Check if the webhost company offers a 30-day money-back guarantee, this way you can cancel your order if expectations are not met.
We’ll discuss some benchmarks you can use on a Linux system to assess the performance of the server in a later chapter.
Benchmarks from ServerBear
ServerBear.com is a great site where you can see the benchmark results of a lot of webhosting plans by different companies. As the ServerBear benchmarks results are comparable with each other and they are shared by real users of the webhosting plans; it’s possible to get an indication of the performance you’ll receive. There are a lot of options to filter the search results: eg. on price, type of hosting (shared, vps, cloud), ssd or hdd storage and so on)
ServerBear benchmarks CPU performance, IO performance and Bandwidth performance (from various parts of the world).
You can also run the ServerBear benchmark on your machine (if you already have hosting) and optionally share it with the world at ServerBear.com
Once the benchmark is complete ServerBear sends you a report that shows your current plan in comparison to similar plans. For example if you’re on a VPS ServerBear might show you similar VPS plans with better performance and some lower tier dedicated servers.
Running the benchmarking script on your server is a completely secure process. It’s launched on the command line (via a Secure Shell login to the server). The exact command can be generated by going to ServerBear.com and clicking on the green button ‘Benchmark Your Server’
VPS Virtualization methods considerations
As a virtualization layer adds a layer of complexity around your operating system, you’ll want to take into account the performance and security implications of choosing a Virtualization software. Not all hosts offer all types of Virtualization, or offer them at different price points.
We will discuss a few well known VPS virtualizations software:
OpenVZ has a low performance overhead as it doesn’t provide full virtualization. Instead OpenVZ runs containers within the host OS, using an OpenVZ enabled OS kernel.
As such your VPSs are not that isolated from others when running on the same server. We don’t recommend to use OpenVZ because of the following reasons:
- Not possible to tweak kernel (eg. TCP/IP settings)
- Not possible to upgrade the Linux kernel
- Webhost company overselling of resources within OpenVZ environments
You’ll see in later sections that a recent and tuned Linux kernel is necessary to get the best possible performance and scalability.
Virtualization technology needs to perform many of the same tasks as operating systems, such as managing processes and memory and supporting hardware. Because KVM is built on top of Linux, it can take advantage of the strengths of the Linux kernel to benefit virtualized environments. This approach lets KVM exploit Linux for core functions, taking advantage of built-in Linux performance, scalability, and security. At the same time, systemic feature, performance, and security improvements to Linux benefit virtualized environments, giving KVM a significant feature velocity that other solutions simply cannot match.
Virtual machines are Linux processes that can run either Linux or Microsoft Windows as a guest operating system. As a result, KVM can effectively and efficiently run both Microsoft Windows and Linux workloads in virtual machines, alongside native Linux applications as required. QEMU is provided for I/O device emulation inside the virtual machine.
Key advantages are:
- Full isolation
- Very good performance
- Upgrading the kernel is possible
- Tweaking the kernel is possible
We recommend to use a webhost where you can order a KVM based VPS.
IPv4 / IPv6 Support
IP stands for Internet Protocol. It is a standard which enables computers and or servers to communicate with each other over a network.
IP can be compared with the postal system. An IP address allows you to send a packet of information to a destination IP address by dropping it in the system. There is no direct connection between the source and receiver.
An IP packet is a small bit of information; it consists of a header and a payload (the actual information you want to submit). The header contains routing information (eg. the source ip address, the ultimate destination address and so on)
When you want to eg. download a file from a server, the file will be broken up into multiple IP packets, because one packet is only small in size and the file won’t fit in it.
Although those IP packets share the same source and destination IP address, the route they follow over the internet may differ. It’s also possible that the destination receives the different packets in a different order then the order in which the source sent them.
TCP (Transmission Control Protocol) is a higher-level protocol. It establishes a connection between a source and a destination and it is maintained until the source and destination application have finished exchanging messages.
TCP provides flow control (how fast can you sent packets/receive packets before the source or destination is overwhelmed), handles retransmission of dropped packets and sort IP packets back in the correct order.
TCP is highly tunable for performance.
IPv4 or IP version 4 allows computers to be identified by an IP address like the following:
In total there are around 4 billion Ipv4 addresses available for the whole internet. While that may sound much, it is less then the number of people on the planet. As more and more devices and people come on-line, IPv4 addresses are becoming more scarce rapidly.
IPv6 or version 6 aims to solve this problem. In this addressing scheme there are X number of different IP addresses possible. Here is an example:
You can see it is divided in 8 parts of 4 hexadecimal numbers.
When choosing a webhost and ordering a server you will generally get one or two IPv4 addresses included. This means that if you host more then two websites, they will be hosted on the same IP address. (this is possible via virtual hosts support in webservers like nginx)
We recommend you to look how many IPv6 addresses are included. If there are none, we can not recommend such a hosting provider as they are not future proof. The best solution today is to make your site available both under IPv4 and Ipv6, this way nobody is left in the cold and you can reach the most potential customers/devices. We’ll explain how to do this in later chapters.
I started my first website Wim's BIOS (https://www.wimsbios.com) back in 1996 as a hobby. Wim’s BIOS is still the internet premier source for finding BIOS Updates.
More then 15 years later this technology site keeps going strong with thousands of visitors every day.
My book "Fast, Scalable and Secure Webhosting" will show you how to set up your server using Linux, Nginx, MariaDB, PHP-FPM, Java, IPv6, HTTPS, HTTP/2, WordPress and much more!
Latest posts by Wim Bervoets (see all)
- Google PageSpeed Insights: Scoring 100/100 with WordPress - August 2, 2016
- Enabling SSL – HTTPS on a CDN (HTTPS Everywhere Series – Part 6) - May 11, 2016
- Getting an A+ grade on SSLLabs.com (HTTPS Everywhere Series – Part 5) - May 9, 2016
Share this Post