Matt Gemmell

My new book CHANGER is out now!

An action-thriller novel — book 1 in the KESTREL series.

★★★★★ — Amazon

Linode

general 5 min read

I’ve had various sites hosted with Dreamhost for a number of years now, but lately I’ve been becoming aware that my needs have outgrown what shared hosting can provide. I thus began shopping around for a VPS provider, and I settled on Linode. I’m going to talk a little bit about Linode and my experience with them so far. If you’re also looking for a VPS provider, I think you should consider signing up with Linode (disclosure: that’s a referral link; I’ll get $20 towards my hosting if you sign up).

Dreamhost have been pretty good to me over the past six years; their plans are generous, and their web panel is the best I’ve ever seen. However, shared hosting can only go so far, and you’re largely at the mercy of other users on the same machine, without any guaranteed share of resources. There are also obvious limitations in terms of what you can and cannot do (though to be fair, I can’t recall an occasion when I’ve been simply unable to get something setup or installed with Dreamhost - the issue has more often been lack of control in terms of configuration, and an inability to accurately diagnose issues on my own).

There are occasional flaps on the internet about Dreamhost outages, but I’ve generally been fairly happy. I was moved to a new server a month or two ago and there have been several brief periods of downtime since then, and that acted as the catalyst to finally find a VPS provider to move my higher-traffic sites to. My Dreamhost account remains active and hosting a few other sites, and they’re also my current registrar. If you think shared hosting would suit you just fine, then I can still recommend Dreamhost - feel free to mention “mattgemmell” when you sign up (he said shamelessly).

So, to VPS. Getting a VPS provider isn’t expensive these days; there are plenty where you can get a basic plan for around $20/month (I’m currently on such a plan). I considered several providers, going initially by word-of-mouth to make me aware of what was out there, then filtering by general reviews and taking cost etc into account. I finally narrowed the list down to Rackspace, Media Temple Grid-Service, Slicehost, and Linode.

All are well-regarded services, and I’m sure you’d be happy with any of them, but the two names which kept cropping up in recommendations both on the web and from people I know personally were Linode and Slicehost. It was almost down to the flip of a coin at this point, but Linode won out in terms of offering a higher memory allocation per dollar, and having such universal rave reviews. I should point out that I know several people who are with Slicehost, and are very happy customers. Like all purchasing decisions, do your research at the time you’re interested in buying, and see what seems to be the best deal for your own situation. For me, that was Linode.

I thus signed up with Linode, taking advantage of the 10% discount available when you pay for a full year (there’s also a 15% discount if you pay for 2 years, and you can cancel at any time regardless, so it’s silly not to take advantage of those offers). You can also pay month to month if you wish. You can choose your Linode datacenter (try downloading the same large file from each location to check which is best), and being in the UK, after doing some tests I decided on Newark, NJ (Update: as of 7th December 2009, Linode now also have a data-center in London - existing customers can of course transfer their Linodes between data-centers freely). It was a matter of moments to provision my Linode (“Linux node”, naturally) and make it ready for installing a Linux distribution of my choice. As with all VPS providers, you have free reign to install and configure anything you like, from the operating system up, with full root access.

You can read much more about what Linode offers you on their own site, but a few points I particularly like are listed below:

  • It's very easy to install pretty much any Linux distribution you like via the Linode web interface, and they keep their distros bang up to date. Not that you're limited to the distributions listed there, of course.
  • You can upgrade or downgrade your plan at any time, or resize or clone your disk images, all via the web interface.
  • You can get multiple Linodes and they'll automatically go onto different machines, and you can make use of very fast and unmetered private bandwidth between them. That could be very handy if you want/need to move your database server to another physical machine, or perhaps serve static content on port 80 from a more modest server and keep Apache separate on port 8080 to handle dynamic stuff.
  • There's a handy web dashboard with some indicative graphs of CPU usage, network traffic and disk I/O over the last 24 hours (on a 5-minute average).
  • They provide out-of-band web-based shell access to your box, in the event that you can't reach it via conventional ssh for whatever reason (perhaps you've locked yourself out, or disabled networking, or your site is being hammered or some such thing).
  • They have configurable custom email alerts for when you hit chosen averaged threshold values of CPU usage, disk I/O rate, incoming or outbound traffic, or transfer quota. There's also a shutdown watchdog to reboot your machine, and an API (over HTTP, returning JSON or WDDX) to boot, restart, and shutdown your machine, inspect and modify DNS settings, and so forth.
  • You can enable IP-whitelisting security (with automatic emailing to confirm new IPs) to access the web panel (which is always password protected too, naturally).
  • They do host DNS (with a nice web UI that makes it easy to clone existing zones, remotely import them or create new ones, configure TTLs, etc), but you're of course free to run your own nameserver if you wish.
  • They provide a recovery distro (Finnix) which doesn't occupy any disk space on your Linode account.

The most major benefit for me, though, has been in terms of support. Whilst a VPS provider is naturally an unmanaged service, there’s a truly excellent community of support available for Linode users: everything from very well-written guides to spam-free forums, a wiki, a dedicated IRC channel (on which I’ve always had immediate and helpful responses), and a support ticket system with replies often arriving within about 10 minutes. You can also follow @Linode on Twitter.

As someone for whom this is a first real foray into server setup and administration, it’s an enormous comfort to have these resources available. I’d make a buying decision on that point alone, based on my own experience over the past week.

Regarding my actual setup, I’m keeping it fairly simple for now. The server is running Ubuntu 9.10 (Karmic) and a standard LAMP stack for the blog, with just a few tweaks. I’m pointing the MX records to Google Apps for email (the Standard edition, which is entirely free for up to 50 email accounts, though they do make you hunt to find it instead of the paid-for pro edition of Google Apps).

I’m using APC for PHP opcode caching, WP Super Cache for WordPress’ rendered content, and another WP plugin (DB Cache Reloaded) for caching MySQL queries. I’ve lightly tweaked the configurations of Apache 2 (still with out-of-the-box prefork and mod-php) and MySQL, and I’ll continue to play with them as needed - after all, I have full root access and can configure and reconfigure as I choose. Everything is working brilliantly so far, and easily coping with this blog plus my business site at Instinctive Code, and a few others besides.

My experience in moving over to Linode has been an extremely positive one, and at (less than, with the pro-rated discount) $20 per month, it seems to have been a very wise choice. If you’re in the market for a VPS provider, I can certainly highly recommend signing up with Linode.

Update: Two weeks after I wrote this post, Eivind Uggedal conducted a survey of VPS providers including Linode, Slicehost, Prgmr, Rackspace and Amazon EC2. To quote from his post:

Summarizing the benchmarks gives us one clear winner: Linode. 32-bit gave the best results on the Unixbench runs while 64-bit was fastest on the Django and database tests. Since Linode also has the highest included bandwidth I have a hard time recommending any of the other providers if performance and price is most important for you.

I’d say that performance and price are indeed most important to me. It’s been about 3 weeks now, and I’m still very happy indeed with Linode.