Here are several areas you should consider when looking for a VPS – I’m sure there are others! Please let me know if you think of any and I’ll add them to the list
Memory: When I first started looking for a VPS I was shocked at how little memory you got. 256MB sounds like a ridiculous amount – however, you have to remember that a lot of the memory that the Linux kernel is using does not come out of your allocation. Also, programs these days expect there to be a lot of memory available on the server. If you’ve only got a small amount then you can tweak the configuration files (of apache, mysql, etc …) to use less memory. Sometimes this will degrade performance to an unacceptable level but often not.
CPU: Unless you’re running a processor intensive application then my experience is that you’re unlikely to have problems with your CPU allocation. Most VPS hosts have got extremely quick, multicore processors these days.
Disk IO: This can be a big problem with VPSs. Say a decent VPS host with direct attached storage can manage 200MB/s read/write performance. Once this get’s shared out amongst 10 or 20 users it can become a real bottleneck. Unfortunately there’s no real way to test this and a lot can depend on who you are sharing the VPS host with. If you see high IO wait times speak to your provider and see what they can do.
Sharing: Obviously one of the most difficult things with VPSs is that you are sharing the hardware with other users. If you do feel you are being unfairly penalized because of another user speak to the VPS provider – my experience is that they are normally happy to try and help.
Overselling: Some overselling is not necessarily a bad thing but it’s potentially disastrous if done poorly. There’s no real way to know if a VPS provider is overselling but read some reviews on the web, that’ll normally give you a good idea.
So, what is overselling?
Imagine I’ve got a server that I want to start selling VPSs on. This server has got 8GHz CPU, 8GB RAM, 80GB hard drive space and 8mb/s of bandwidth. This server cost me $3000 (spread over 3 years that’s $1000 for this year) to buy and is going to cost $2000 a year to run in a datacenter – total for this year $3000. I decide I’m going to sell 8 VPS’s with 1 GHz cpu, 1GB RAM, 10GB hard drive space and 1mb/s of bandwidth for $70/month. So that’s $6720 (8x70x12) for the year. Pretty good but with marketing and staff costs I’m not going to be making much money. Now, one of the beauties of virtulization, and one of the reasons that a lot of big companies are using it, is that it allows you to over subscribe resources. In other words I can sell 16 VPS assuming that not every VPS is going to be using all it’s resources all of the time. This is a fairly good assumption as rarely are servers pegged out all of the time. So now I’m making $13,440 a year – much better! There is an obvious potential problem though – what happens when these VPS’s actually want to start using what the owner has paid for? Things slow down, obviously. Making the best possible use of the resources available is the goal but there’s a very fine line between this and making peoples VPS experience a miserable one.
Managing expectations: You see some posts on the forums from people whose “VPS is just as quick as a dedicated server …” and while this looks like a lie it could well be true! Just imaging being the first VPS customer on a new VPS host. Most of the CPU sharing is set up as ‘equal share’ and if you’re the only VPS on there that’s gonna be pretty good!, there’s nobody else using those nice fast hard drives, lot’s of network bandwidth is potentially available to use … Are things going to stay like this – not likely!
At work I manage VMWare ESX servers and sometimes we will cap a virtual machines CPU usage. So, we may have a server with a 8GHz CPU, running only one VPS and have that capped at 500MHz. Seems crazy but it’s all about managing current and future expectations.
Support: To me this is the most important area to investigate. Prices that look too good to be true have normally had some area cut back and, in my experience, that area is support. Good IT support staff cost a lot of money to employ. This WordPress blog runs on an extremely cheap VPS – only $4/month. Now, hopefully the page loaded pretty quickly – I’ve never noticed any performance issues, when things are working with this VPS everything is good. However, support is awful. No response to tickets, hard to understand replies, people with no idea what they’re talking about … For a personal WordPress blog this is no big issue. I certainly wouldn’t dream of running anything important on here. Read reviews, talk to sales, ask friends for recommendations. If you go with a provider with poor support, you’ll regret it one day.
Control Panels: One of the things that you’ve got to do with a VPS that you don’t have to do with shared hosting is manage it. You can either do this yourself (ssh to the machine and set things up by hand), you can pay someone else to do it (either the VPS provider or a 3rd party) or you can use a control panel. Bare in mind that a control panel is just another application running on your VPS and will use resources – so you may need to buy a bigger VPS than you thought. Also, even though everything is GUI/Web based you’ll still need to have a good idea what you are doing to make sure everything is secure.