Slicehost vs Linode

Posted by David N. Welton Mon, 24 Nov 2008 18:14:00 GMT

Since hosting is the major expense for DedaSys LLC, and obviously a critical part of much of what I do, getting the right one is very important.

Naturally, "the right one" for me may not be the right one for everyone. I am a fair sysadmin for small numbers of machines, so I don't mind doing that myself - I don't need, nor want to pay for hand holding.

Since this post has become fairly popular, I am going to link to my Linode affiliate URL if you'd like to sign up with Linode - thanks! Other than running my sites there, I have no other affiliation with Linode. And, if you're more a fan of Slicehost, here is my referral page on Slicehost.

I recently moved everything over to Slicehost on the recommendations of friends, and am so far fairly happy with the experience. It's cheaper, simpler, and more flexible than Layered Tech was. To boot, I also like the fact that Slicehost is run out of St. Louis, Missouri, rather than some really expensive tech center like San Francisco or Boston. Hosting is basically a commodity, and much like you wouldn't want to put a factory in San Francisco, you don't want your hosting their either.

However, I discovered something annoying about Slicehost: they use x86_64 servers, which, per se, doesn't really matter to me - I use open source code that can run on any number of architectures. The problem is that this particular architecture uses more memory than plain old x86. Significantly more. My Layered Tech server with 1 gig of memory was hitting the swap space a bit, but the same code on a slice was swapping quite heavily, despite the fact that I'd moved PostgreSQL off to its own slice. Since I pretty much exclusively run Rails, I decided to look into Phusion's "Ruby Enterprise Edition", which is basically just some nice hacking on Ruby's garbage collection mechanism. What they've done is nice, and I may end up using it, but ultimately it's buying me space that I would also gain from simply moving back to x86. With that in mind, I decided to take another look at what appears to be emerging as one of Slicehost's main competitors, Linode, who do use x86 servers. Here are my results, which are admittedly not all that scientific, but what the heck - you're getting them for free, and they were pretty quick to whip up.

Service, Support, Setup

But before we begin with the numbers, I want to add a few words of caution. One of the big things about hosting, to me at least, is how they deal with unexpected random negative events. Connections going down, disk breakage, DoS attacks, and so on. It's really hard to get an idea of just what sort of people you're dealing with until you've "ridden the river together". I don't really know what sort of response times, uptime, and all that either Slicehost or Linode have, so there are potentially some big intangibles there that are not quite as easy to draw pretty charts for.

In terms of the console/setup/management tools, I liked Slicehost's simplicity more - Linode gives you more options, but they're a bit fiddly and cluttered feeling at times. For instance, Linode lets you pick how much swap space to give your disk image, but doesn't include a bit of javascript to balance out the swap and regular partitions, so that if you type in a larger swap number, you have to do the math and subtract that from the other number. Annoying, but not a big deal. Linode lets you pick various data centers in the US (no Europe, yet). Slicehost gives you the option to do backups of your disk images, which is nice, and something that Linode lacks.

Comparing plans

Since I'm interested in comparing hardware and machines I actually have access to, here are the plans I am currently signed up with, and the salient numbers:

<tr><th></th><th>Slicehost 1024</th>    <th>Slicehost 512</th>  <th>Linode 720</th></tr>
<tr><th>Memory</th> <td>1024</td>   <td>512</td>    <td>720</td></tr>
<tr><th>Bandwidth</th>  <td>400</td>    <td>200</td>    <td>400</td></tr>
<tr><th>Disk</th>   <td>40</td> <td>20</td> <td>24</td></tr>
<tr><th>Cost</th>   <td>70</td> <td>38</td> <td>39.95</td></tr>

Memory / Dollar:

Bandwidth / Dollar:

Disk / Dollar:

Linode mostly comes out ahead, but not by that much, except for bandwidth. However, let's take a crude look at x86_64 vs x86 memory usage.

First, ./script/console (a Rails console) for the same code base on two different machines, showing the virtual memory size (VSZ) and resident set size (RSS):

And just to look at something else that's a bit smaller, I ran the following script:

puts File.open("/proc/self/status", "r").read

And got the following data:

Being charitable with those numbers, we get x86 taking up 77% the memory that x86_64 does. So let's add that to our comparison of how much memory you're getting per dollar on Slicehost and Linode:

Wow! That's a fairly significant difference.

Performance

That's most of what we can glean from published numbers, and running a few simple experiments. However, there's another factor that's important: performance. "Virtual Private Server" systems, or simply VPS's, got a bad name in the past because they were "overbooked" - too many virtual servers competing for the same CPU resources on one machine. Slicehost and Linode both look like they want to avoid that kind of bad reputation, and so far all the systems I have used have felt snappy and responsive. Now here's where we get really unscientific... I decided to try and do something, even if it wasn't much, to get some kind of objective measurement of what kind of CPU I was getting on the machines. This is really unscientific, because the machines do have other duties (I don't have the cash, time or inclination to set up random servers just for testing), and of course, who knows what else is sharing the computer with my systems: if you get a relatively unused computer, you can apparently pick up extra cycles for yourself, over and above your guaranteed minimum. But c'est la vie, and so I decided to do some numbers anyway. I picked a C implementation of mandelbrot from the language shootout more or less "for the hell of it" (I'm going to keep repeating "unscientific" and invite someone to do better tests than I have). I ran this code every 20 minutes for a couple days, and then averaged out the run times:

As expected, the higher power Slicehost 1024 machine wins out in terms of raw speed (less time is better), but not by that much over the Linode system. Indeed, when we factor in the relative prices, Linode comes out ahead, again:

So it looks like we're not paying a CPU penalty for having more memory, bandwidth, disk, etc...

Notes

  • Nothing in these statistics is indicative of future directions that both Linode and Slicehost might take. Slicehost was recently acquired by Rackspace, and that could have effects on the service they provide. Maybe one or both will come under financial pressure and start "overbooking" their servers.
  • The spreadsheet I used is available via Google docs, for the curious. I did most of the work in OpenOffice, and then uploaded it though, because working with the web spreadsheet was kind of painful. Unfortunately, you can't select non-contiguous data ranges in the Google spreadsheet, so the labels are interspersed with the data. Yuck. Also, Google docs doesn't handle 'time' values nicely, which is what the performance data was originally. The spreadsheet is here: http://spreadsheets.google.com/pub?key=pVDeZF6ire2YwATBYb4mBKQ
  • The standard deviation on the processing times is higher for both slices than the linode system. Not quite sure what that means in terms of what's going on under the hood, but I thought it was interesting.

21 comments |

Trackbacks

Use the following link to trackback from your own site:
http://journal.dedasys.com/trackbacks?article_id=2112

  1. Daniel Jacobowitz
    32 minutes later:

    I'm not sure it matters to you at this point - with Linode coming out generally ahead - but it seems to me that it should be pretty simple to install a 32-bit OS under Slicehost's 64-bit kernels. That won't completely solve the problem, since a 64-bit kernel does use more memory, but it should take a nice chunk out of userspace usage.

    I hadn't thought about this - perhaps I should try it. Unfortunately they do not offer 32-bit preconfigured images.

  2. Adam Wexler
    25 minutes later:

    Hey David,

    Thanks for doing this comparison for everybody. I'm passing this along to my IT guys right away.

    We're also using rubys for a pretty large scale project. I was wondering if you have had any experience with Amazon's hosting? If so, is there a reason your debate comes down to these two instead?

    I look forward to hearing your response!

    Thanks again!

  3. Thomas Asaro
    16 minutes later:

    Hey David, thanks for the writeup! A backup solution is under development as I type this. Also, you may want to correct your link to our site: http://www.linode.com/

  4. David Welton
    4 minutes later:

    BTW, apologies for the messed up comments - working on fixing that. If you hit 'submit', your comment has been submitted - reload the page to see it.

  5. David Welton
    11 minutes later:

    The last time I looked at Amazon EC2 was around a year ago, when it was missing a lot of essential things to be a 'real' server, and not just additional computing capacity: no permanent IP addresses, no permanent disk space, stuff like that that kind of put me off it. I hear most or all of that is fixed in some way now, so adding Amazon EC2 to the comparison might be a good idea.

  6. Michael Schurter
    13 minutes later:

    For what its worth I've used Linode for years and have never wanted to switch. Great products, great support, great technology, great prices, and most importantly: great IRC channel: #linode on oftc. ;)

    Linode is also a small and fairly transparent company. I like knowing every employees name and be able to chat with them on IRC. It almost feels like linode.coop not linode.com. ;)

  7. Shot
    about 1 hour later:

    Have you considered ServerPronto? I have a server with them for over two years now, and while quite a lot of people seem to be dissatisfied with their offer I can’t really complain. I switched from Linode to their starter and so far I’m happy both price-wise and performance-wise.

  8. Daniel de Kok
    about 1 hour later:

    I'd recommend looking at Gandi as well. They have been my domain registrar for years, and I have used their Xen offering since the early beta stages. A nice advantage of their offering is that it is really easy to scale, you can easily add or remove resources. They also support many non-profit projects (including Debian). I just had a look at my Xen instances, and they run an i686 kernel.

  9. Wes Felter
    about 1 hour later:

    Try replacing Ruby with the 32-bit version; that should eliminate the memory difference.

  10. Brian Turnbull
    about 2 hours later:

    I wholeheartedly second Michael Schurter's comment.

    As the David mentions in the article, the real measure of a hosting company is when you are "up the creek". Having been up that river, I can vouch that the guys at Linode know their stuff and are especially accessible when it comes to support requests.

  11. Bob Proulx
    about 2 hours later:

    When I moved to Slicehost I was surprised to find that they were 64-bit too. But for me it was a pleasant surprise.

    In any case for other unrelated reasons I did set up a full 32-bit chroot in my slicehost image. That worked great for me and bypasses the memory issues that you present here. For anyone concerned about 64-bit memory use I definitely recommend the 32-bit chroot approach.

  12. John
    about 4 hours later:

    You might want to also check out panix.com

    Clunky interface, but very good price and the disks are fiber channel raid5 arrays. Rsync Backup included, tape optional and you can scale easily as well.

    Good support too, also helps different other projects.

  13. Jeff Waugh
    about 4 hours later:

    ... another long-time Linode customer here.

    Very, very happy with their network, hardware, people, culture and management interface (I feel spoiled whenever I have to use another hosting company's hopeless management crap).

    A notable point in their favour: Linode took their time implementing Xen, because they wanted to make sure they hit the same level of reliability and support that we had come to expect from their UML platform. Win. :-)

  14. Aaron
    about 6 hours later:

    I have been using Linode for several year now and am completely satisfied. I run on their lowest powered plan for some personal hobby apps, and sites for friends. I am able to run Java Tomcat (and Java is heavy on the memory as you may know) as well as python and php (and even php in Tomcat ;) ), mail, databases, etc. My basic plan just keeps getting better and better over the years as they increase resources and add features to their management interface. Their management interface gives me all the control I want, and allows me to rescue my system if I wedge it, which was a constant concern with my last provider. Linode has forums and great users. Can't say enough good things about 'em. Every once in a while I take a look around to see if there are any better deals, and sometimes it looks like it, a matter of a few dollars, but I stick with Linode, they haven't failed me yet.

    By the way, I was just searching on Google about Linode's work with Xen, and found this post, which is ~7 hours old. Not bad, Google. ;)

  15. burrokeet
    about 9 hours later:

    we ported from our own box in a colo facility to slicehost and have been extremely happy - hosting a number of domains using LAMP and python, as well as a subversion server- we started with the smallest slice and Debian, and thought we would have to bump up to the 512 but we are having no problems and barely using the 256 resources.

    turned off our DNS servers and used theirs, turned off our backup system and used theirs, have had zero problems.

  16. DV
    about 12 hours later:

    I've recently switched to Linode from Slicehost. One other reason I like Linode (besides cost savings) is your ability to choose among 4 diverse locations for your server. Since ping times are critical for some applications, this is indeed nice. Also, I found out that Hurricane Electric's network (HE.net) is much much faster in upload/download speed than what Slicehost is using. Linode averaged 31 Mbps and Slicehost 2.4 Mbps while downloading 300-MB file off Microsoft's servers. Another reason I like Linode is because they provide you with graphs of network/cpu/drive load, and in general their management console is more... usable (at least to me).

    Disclaimer: your milage may vary.

  17. DV
    about 12 hours later:

    time to fix your comments system! :D

  18. Tom S
    about 12 hours later:

    Your blog's theme had me trying to clean my monitor for a few minutes.

  19. heri
    about 22 hours later:

    thanks for this. slicehost did experience a problem a few days aog with their uplink, now considering more reliability and linode might just be it

  20. John
    2 days later:

    But really, also check out panix. Their prices about exactly match linode. But storage on panix is way way better - and it is important, xen isn't able to properly quota disk i/o yet meaning that even with guaranteed cpu and memory, other nodes is able to hurt you.

    Proper Raid 5 arrays on fiber channel obviously is a different world from local raid1 disks.

    Nightly rsync backups are also included at panix.

    Further, really nice selection of os's including solaris which a drone will manually install for you if you select it in the clunky but efficient enough interface.

  21. Hareem Haque
    8 days later:

    Linode does provide you the ability to rescue your instances and manage/monitor multiple linodes in one go.

    With the proper config. You can setup a simple cloud scalled service.