UPDATE: Use nginx for memory efficiency.
I’ve just mercilessly murdered a Dreamhost “VPS” for good and I’m a happy man. In this article I will elaborate on why they’re terrible and at best, a fair pile of literary deception.
Unfortunately for most, the term VPS (Virtual Private Server) is somewhat ambiguous. This allows many companies to take liberty in their interpretation of the phrase and liberty in how much they actually give you. There are several classes of VPS, of which I’ll list a spectrum from complete virtualization down to a shared system:
- Virtual Machine: Full virtualization. Very inefficient (for example, it will emulate physical network cards) but compatible with nearly every OS.
- Xen: Hypervisor/paravirtualization: requires OS support, but allows for greater efficiency than in a full virtualized environment. Does not imply guaranteed resources (for example, not necessarily guaranteed CPU availability).
- OpenVZ: Vastly more efficient than Xen, but provides an “enhanced chroot” and less guaranteed resources. Separates virtualized environments into containers. For every Xen server, you could fit many more containers onto a host. In this manner, the host gets more bang for their buck by lowering the amount of guaranteed resources and fitting more guests/host.
- chroot: If you’ve ever mounted another volume and executed chroot /mnt/test, you’ve achieved this level of virtualization. You are basically still on the same computer. If you type htop, you’ll see everyone’s processes.
I don’t know of any providers that provide full virtualization (as it’s really pointless except on desktop computers). Examples of Xen or Xen like include Amazon EC2, Linode, etc. Xen is very nice because it implies less competition for hardware resources than any of the “lesser” virtualization technologies. If you’re serious about owning a “VPS,” you should get Xen.
OpenVZ or “the enhanced chroot” is common for cheaper VPS providers like ServerMania with terms of service that classify compiling a binary as “cpu abuse” and will ban you without warning. It has much less separation between host and guest — the host’s kernel is used by all containers and cannot be upgraded independently.
The chroot is barely a form of virtualization at all. This is what DreamHost provides as a “VPS.” Dreamhost does not actually say what they’re doing in the back end. I’m not entirely sure what the benefit to their VPS is at all, as it’s slow enough to lag on an “ls” command and down more often than not.
In summary, if you want a VPS, I would recommend using Linode, which provides a 1GB Xen VPS for $20/month. The more memory you get, the more fewer guests and, as a result, more isolation you have. If you need guaranteed resources, just get your own server. But a Linode is a fairly good intermediate.