The development of virtualization technologies and software has lead to an new web hosting product siting between the shared server and the dedicated server: the virtual private server (VPS). Also referred to as virtual dedicated server (VDS), this virtual server is hosted on a physical server typically running a hypervisor. The presence of the hypervisor on the physical server allows a better control on the resources allocated to the virtual servers. Each virtual server can run its own operating system with custom settings, configuration and services.
The cost of a virtual private server is higher than a shared web server but lower than a dedicated server. A basic VPS will cost around 20$ per month. The price will scale up according to the VPS resource allocation.
Different virtualization technologies can be used to tranform a physical server into a VPS offering:
- VMware ESX/ESXi
- Citrix XenServer / Xen
- Microsoft HyperV
- Parallels Virtuozzo Containers / OpenVZ
Knowing on which virtualization technology your VPS runs is important as it will influence the way resource allocation is managed on the physical host.
Based on a software-emulated hypervisor, VMware is a production ready technology. It provides support for a mixed combination of Linux and Windows VPS with decent IO performance and low CPU overhead. VMware uses full virtualization to provide a layer, commonly called the hypervisor, sitting between the virtualized operating systems and the hardware. This layer multiplexes the system resources between competing operating system instances. The VMware hypervisor is a very complex piece of software with advanced capabilities like the support of memory over commit which allows the total memory allocated to virtual machines to exceed the physical memory installed on the host.
Similar to VMware, Xen is based on a software-emulated hypervisor and is a production ready technology. It provides support for a mixed combination of Linux and Windows VPS with decent IO performance and low CPU overhead. Windows VPS support is available through full virtualization on CPU featuring virtualization extensions like Intel-VT or AMD-V. Xen can also use paravirtualization to provide a hypervisor coordinating each Linux guest operating system in a cooperative fashion. The operating systems are aware they are running in a virtualized environment. Hence, each guest operating system cooperates with the hypervisor to virtualize the underlying hardware. Unlike VMware, Xen does not support memory allocation over selling which is an interesting feature for VPS customers. The allocated memory of your VPS is reserved for your usage only.
KVM is a relatively new virtualization engine using an hardware-based hypervisor which has found its way into the Linux kernel. While KVM is not yet a production ready technology, it has a great potential and may soon compete with the VMware and Xen hypervisors. KVM does not require modified guest operating systems, and thus, can support a mixed combination of Linux and Windows VPS from within a Linux host, given that it is deployed on a processor featuring virtualization extensions.
Microsoft HyperV is also a relatively new virtualization technology. Based on a software-emulated hypervisor, HyperV provides support for a mixed combination of Linux and Windows VPS with a low CPU overhead but rather low IO performance compared to VMware and Xen. Hence, Microsoft HyperV is not yet a production ready technology.
Virtuozzo is an operating system-level virtualization technology. While VMware, Xen, KVM and HyperV use an hypervisor, Virtuozzo uses containers to share resources of the physical server to the VPS guests. Virtuozzo makes it easy to over-sell a server, thereby diminishing any performance advantages it might otherwise offer. For example, if your VPS offers burstable memory, it is most likely based on Virtuozzo, because an hypervisor-based VPS comes with fixed memory limits and cannot offer this feature. Another drawback from Virtuozzo is the limited choice for your VPS operating system: using the physical host operating system on the VPS guests is recommended for performance and stability reasons.
CPU time of the physical server is shared by its guests through the hypervisor. Nowadays, multi-core CPU can provide physical servers with a large pool of processing power. Hypervisor will typically redistribute this resource to the VPS as a scaled down multi-core or single-core CPU. A multi-core virtual CPU is preferable as it provides improved multi-thread support for your web and database services.
Memory (RAM) of the physical host is also an important element since it provides caching space for regularly accessed data. Virtualization technologies based on an hypervisor provide a fixed amount of RAM to your VPS. Hence, the number of VPS on a physical host is limited by the amount of RAM on the physical host. Virtuozzo containers provide a variable amount of RAM to your VPS. Depending on memory usage of the other VPS guests on the physical server, your VPS allocated memory will fluctuate. The number of VPS guests on the physical server is no longer limited by the amount of RAM on the physical server with Virtuozzo containers. The performance of a Virtuozzo container VPS will depend on the number of VPS guests, a parameter controlled and known only by your web hosting provider.
Disk space of a VPS guest represents a fraction of the available disk space on the physical host. The size of hard drives grew rapidly during the last years and a physical server with a storage capacity of a few terabytes is no longer expensive, especially if it is built with SATA drives. However, using SATA drives to provide storage capacity will result in low disk Input/Output performance for the VPS guests. A physical host using SAS 15k RPM drives will provide its VPS guests with twice as much I/O performance compared to SATA 7.2k RPM drives. Like disk space, disk I/O performance is also shared between the VPS guests. However, unlike memory allocation, disk I/O allocation for a VPS is not a fixed parameter. Serious web hosting providers will monitor VPS usage of disk I/O to avoid a situation where a single VPS is consuming a large part of the available disk I/O resources. If your application is database intensive or requires many read and write operation to small files, your disk I/O requirements may be too high for a VPS hosting solution.
Bandwidth is also a limited resource on a VPS guests. The physical host is connected to the Internet through network equipment (network card, switches, routers) having fixed specifications. The available bandwidth is thus shared between the VPS guests.
Serious web hosting company are keeping a close eye to resource utilization on their physical servers. When the resource consumption of a particular guest is seriously impacting the performance of its neighbour guests, a few solutions are available:
- move the problematic guest to a less crowded physical server
- suspend the problematic guest
- leave the problematic guest return to normal activity by itself
- upgrade the problematic guest to a more advanced VPS or a dedicated server solution
Moving the guest to another physical server is not always possible. If it is, the VPS will suffer some downtime while it is being migrated. When the migration of the problematic VPS is not possible, its suspension is often chosen as a solution. The VPS will then experience downtime until action is taken by its owner.
Leaving the problematic guest return to normal activity by itself is also a possible solution or the symptom of a lack of monitoring from the web hosting company. While the problematic guest is consuming too much resources, other guests of the physical host will experience difficulty to serve web pages to their audience.
A suspended account may have to migrate to an higher end web hosting solution. Sometimes, your web application and its popularity requires too much resources to be hosted on a VPS. The migration toward a dedicated will likely solve your issue.
There are several other factors that will influence the uptime of your web solution:
- application stability
- physical host hardware stability
- network uptime
- electrical power uptime
- air conditioning uptime
- datacenter operator skills
The stability of your web application is your sole responsibility if you chose a VPS without support. If you decide to add a support plan for your VPS, the web hosting customer service will be able to help you solve your application issues up to a certain point. Verifying the competence and diligence of the customer service is important if you need support for your web hosting solution.
The hardware stability of the physical host is also a relevant factor for the uptime of your web solution. If the physical host hardware fails, it will have to be replaced in order to restore your web presence. Disk failure is a critical event and should be planned for by taking regular backups of your sensitive information.
If the network connection between the physical host and the Internet is broken, your web solution will be unavailable for your visitors. Unless you made a modification to the network parameters of your VPS, a network connectivity problem is usually the symptom of a problem in your web hosting company network infrastructure. Verifying the uptime of your web hosting company homepage on Netcraft may give you a good indication of their network infrastructure health.
The uptime of the electrical power delivered to the physical host will also influence the global uptime of your web solution. A serious web hosting company will use uninterruptible power supply (UPS) and generators to maintain electrical power for the server and their network infrastructure during blackouts.
Air conditioning is also a crucial element for datacenters with a high density of equipment. A failure of the air conditioning system will most likely cause the physical host to overheat and shut down. This type of outage is critical since the overheat of the physical host may break some key components like the CPU, the disks or the motherboard of the physical host.
Error during manual maintenance by the datacenter operators can cause downtime to your VPS. A datacenter with unlabelled servers or network equipment is most likely exposed to such human errors.
Monitoring probes are a great tool to continuously check for the uptime of your web solution. The support plan for your VPS may already include such a service. In case of a downtime, the web hosting customer service and yourself could be advised automatically. If your support plan does not include such a service, you should seek this service elsewhere to protect your web presence and reduce the length of downtime.
Here are live statistics from Pingdom about my web server (188.8.131.52) hosted on a VPS:
Theoretically, a VPS guest can be scaled up until it occupies a whole physical host by itself. However, your web hosting provider may not allow such a configuration. To scale up your web solution, you can spread your services to distinct servers. The first step is usually to host the web and the database services on two different servers. You can scale up further by duplicating your web and database servers to provide redundancy and an higher throughput. When you scale up your web solution on VPS guests, you will prefer to have your servers located on different physical hosts in order to provide redundancy in case of a physical host failure.
The possibility to interconnect your VPS on a private network is also an interesting feature if you plan to scale up. The network traffic on such a connection is generally free of charge if the physical hosts are on the same data center.
There are basically four layers of management on a web hosting solution:
- datacenter layer: electricity, cooling, physical security, fire protection, building maintenance
- networking layer: Internet connectivity, activity monitoring, IP addresses provisioning
- server equipment layer: server installation, cabling, hardware maintenance
- application layer: OS installation, OS updates, application installation and configuration, monitoring
For a virtual private server, the datacenter, networking and server equipment layers are all fully supported by the web hosting provider. The application layer could also be fully supported if you choose a complete management plan and use a supported operating system (OS) and application stack. If you require support for your VPS like monitoring, service configuration and rapid troubleshooting, you are advised to choose a web hosting provider offering such a support package.
To save money, you could opt for a partial or no management plan at all. With such a support plan, you could install a control panel on your server to simplify its management. Mail accounts, web applications, databases and user management are simplified by the use of a well designed control panel.
A virtual private server (VPS) is a web hosting product siting between the shared web server and the dedicated server. This virtual server is hosted on a physical server typically running a hypervisor. The presence of the hypervisor on the physical server allows a better control on the resources allocated to the virtual servers and the possibility to scale up the server rapidly if required. A VPS can run its own operating system with custom settings, configuration and services. However, if your application is database intensive or requires many read and write operation to small files, your disk I/O requirements may be too high for a VPS hosting solution.