Preamble

As I wrote a few weeks ago, I am currently developing an open-souce ithare::obf library. And apparently, to make sure it works more or less consistently, a Damn Lot(tm) of randomized testing (and preferably under different compilers) is necessary. As a result, last week I found myself in a search for a cheap Linux box to run my randomized tests on.

Is “server for $8/year” === “too good to be true”?

Of course, I could go to Linode or DigitalOcean, and get a box-with-1G-RAM for $5/month (and box-with-2G-RAM for $10/month). However, before doing so, I Googled for “cheap Linux server”, and got to lowendbox.com; there, I found a “special” (~=”not available from vendor site home page”) deal from WootHosting (NB: this is not a link to the deal, as the special might already be over, but feel free to look for it on lowendbox).

The deal said it is a box-with-1G-RAM for $8/YEAR…

BB_emotion_0027b.png
My first reaction was 'hey, it is too good to be true'.

My first reaction was “hey, it is too good to be true”. However, as this is a box which is certainly not mission-critical, and the money-to-risk was rather minor, I decided to give it a try1 – and to share the whatever-experience-I’ll-have on this blog.

So, let’s the comparison between WootHosting’s ultra-cheap special deal, and Linode/DO begin! Note that WootHosting is not the only one out there with such ultra-cheap deals (more can be found on the same lowendbox site) – but it is the one which I stumbled upon, so it is the one I will speak about.

1 though as mentioned below, I went on a shopping spree and upgraded it to 2x vCPUs and 2G of RAM, so the whole thing costed me whopping $17/year

Woot vs Linode/DO: Pricing

First, let’s compare pricing:


Linode

Digital Ocean

WootHosting

Linode-or-DO / WootHosting

1x vCPU, 1G RAM

$5/month (=$60/year)

$5/month (=$60/year)

$8/year

7.5x

1x vCPU, 2G RAM

$10/month ($120/year)

$10/month ($120/year)

$15/year2

8x

Very obviously, WootHosting has won this round hands down.

2 $17/year with 2x vCPU – and this is what I settled for

Setup

Payment and setup with Woot went smoothly. The only issue was that they didn’t add my “addons” (those upgrades to 2x vCPU and 2G RAM) automatically – but they mentioned in their e-mail that I should contact their support to get addons activated, and after I wrote the e-mail – they activated it in 3 minutes.3

Oh, and a funny observation –

RAM and CPU were added without reboot4

Not that it is really useful – but I indeed found it rather interesting (last time I’ve seen such dynamic expansion, was under Stratus VOS on a unkillable box costing about half a million bucks, so finding it on the opposite side of price spectrum was rather entertaining ).

After the setup, SSH credentials were sent to me by e-mail, which is convenient, though security-wise you should remember to change the password outright.

3 Having had lots of experience with hosters during my career – I have to say that it was Really Good(tm) even by the-best-hoster-standards

4 most likely – via “hotplug” feature of OpenVZ

Experience

OpenVZ
...OpenVZ uses a single patched Linux kernel and therefore can run only Linux. All OpenVZ containers share the same architecture and kernel version.
— Wikipedia —

Now, to the most interesting part – experience. I don’t have much experience with Linode, but I have LOTS of experience with remote server boxes, and (what’s more important now) quite a bit of experience with DigitalOcean. Here go my observations about Woot so far (and probably, quite a few of them will apply to other OpenVZ-based ultra-cheap hosters):

  • Woot uses OpenVZ as their virtualization technology. I won’t go into details, but the most easily-observable thing is that as OpenVZ containers share the same kernel, it means that we CANNOT upgrade kernel of our otherwise-separate install.
  • Kernels available on Woot, are rather old, and therefore the newest Debian-like distro I was able to find with there, was Ubuntu 16.04.
    • Not that it was a problem per se – but as the whole ithare::obf is about C++17 – it meant that I had to spend some time looking for newer-compiler-packages-for-Ubuntu-16.04 (and, as noted below, compiling from source is not an option at least for Clang 🙁).
      • This, in turn, required me to install newer glibc – which complained about older-kernel, but apparently works at least for that-very-limited-use-I-need-from-it.
  • The whole thing feels significantly less responsive than normal remote server or DigitalOcean box (~=”there is enough delay to feel ‘it is lagging’, though most of the time it is within 0.3 seconds or so”). Again, not a big deal for running many-hour loads – but can be mildly-irritating if trying to patch your code right there. Still, was good enough for my purposes.
  • CPU-wise, Woot’s box performed pretty well (about 20-30% slower than DO’s box).
  • However, as soon as the disk becomes involved – DO’s SSD started to dominate (and for compile of large projects with lots of small files, speeds could differ by 3-5x).
  • For this package by Woot, I don’t think there is an option to upgrade it beyond 2G RAM. Which rules out things such as compiling-clang-from-source 🙁.
    • OTOH, I found on a real-world case that OpenVZ’s 2G are indeed larger than KVM’s 2G (KVM is virtualization used by DO).
      • It should be so in theory – just because kernel’s memory is not a part of OpenVZ’s memory allocation, but is a part of KVM memory allocation.
      • I observed it in practice, when the same test (under the same compiler) was successfully compiled under Woot’s-box-with-OpenVZ-and-2G-RAM, but ran out of memory and failed under DO’s-box-with-KVM-and-2G-RAM.

Summary

BB_emotion_0041b.png
So far, I am satisfied with my experience with Woot's ultra-cheap box; for my purposes (CPU-bound non-time-critical testing) it is good enough - and is darn cheap 🙂.

So far, I am satisfied with my experience with Woot’s ultra-cheap box; for my purposes (CPU-bound non-time-critical testing) it is good enough – and is darn cheap 🙂.

Overall, IMO, such ultra-cheap OpenVZ-based deals can be interesting, provided that:

  • price difference is big enough
  • the whole thing is NOT mission-critical in any way
  • there is no need to upgrade kernel
  • responsiveness is NOT an issue5
  • disk access speeds are not too important

5 not sure whether this issue is specific to Woot, or characteristic for all the OpenVZ-based boxes