An excellent Linux dedicated server that won't burn a hole in your pocket

[img_assist|nid=1286|title=|desc=|link=none|align=left|width=234|height=252]This site certainly has seen it's share of hosting environments. It started on a shared hosting, without even a proper domain name, then later moved among many of the popular virtualization techniques, first VMware server, then KVM and finally Xen (VPS). But, most of that time, it somehow wanted to end on a real hardware, to have a room to breathe, so to say. As my page on the subject of the digg effect clearly shows, there are times when load on the web server increases rapidly, and to survive such sudden rise in interest, it's best to be hosted on a proper dedicated server. Also I remember that the ever popular picture of Linus Torvalds giving thumbs up to Windows 7 OS ate a fair amount of bandwidth in short time.

The problem is, dedicated servers can get really pricey, because you're leasing not only the physical hardware, you also expect the server to be in a properly air-conditioned and secured data center, connected to UPS, have a good network connection and you also expect the hosting company to pay for all those electricity, cooling and networking bills for you. And of course to install the OS for you and to quickly replace any malfunctioning part etc... All this quickly adds up and pricing goes through the roof fast, thus making most of the real (enterprise) servers completely out of the reach from hobby projects like this site. Fortunately, in the last few years, there has been a steady growing market of so called green servers, small and affordable units that are more energy efficient, possibly more densely packed and certainly more affordable, but still giving great performance to those for whom the absolute availability is not the first priority.

So I spent a few months searching for a dedicated server that would provide a good home for the site. My requirements were that it had dual core Intel processor (I would've chosen Atom if needed, but I preferred something faster), I wanted at least 1GB of RAM (preferably 2GB), remote reset functionality and I definitely looked for some kind of a rescue device. I learned very soon that permanently attached KVM/IP solutions with remote media support can get very expensive (starting at $40 and up to $100 per month!), actually more expensive than the servers I was taking into consideration. But I was quite stubborn waiting for the proper thing and finally an offer from the company called ProviderService caught my eye.

At first, their site [*] didn't provide much confidence. But few inquiries later I got a very good feel about the whole deal and ordered my first dedicated server. Thanks to their IMHO very correct pricing, I skipped their cheapest Green0 (Atom based) server and went straight with their Basic0 configuration including Intel E3200 processor, 2GB of RAM, 2 x 250GB disks (software mirror) and 2TB of monthly transfer volume. Going with 2 disks (in mirror) instead of only one sure does provide better sleep, and E3200 is definitely faster than Atom. And let's not forget twice as much memory and twice as much transfer volume. In my book, that sounds like a fair upgrade for a 34% increase in monthly cost.

[img_assist|nid=1287|title=|desc=|link=none|align=left|width=185|height=298]Beside nice and affordable hardware, one of the reasons why I went with ProviderService is their rescue system. While not a full blown KVM/IP solution w/ remote media (it lacks the console part ;)) it's still quite powerful. With a simple mouse click in their control panel you decide whether to boot into your OS or into the rescue system. When you start the rescue system, you can mount your disks, fix whatever needs to be fixed and then boot back into your production system. It definitely asks for a skilled administrator, but as a testament to its usefulness here's what I've been able to accomplish with it: repartition hard disks to my liking, convert file systems from the default ext3 to more modern ext4, install my preferred boot loader, compile and install my own heavily optimized kernel [**]. The web panel (called NetManager) also provides server reset functionality, RDNS (reverse DNS) editing, traffic graphs, WakeOnLAN (tagged Beta) and also some other monitoring stuff which I can't comment on because I don't have a need for that.

Now, I could tell you how the first server I got had a flakey disk, but it got promptly replaced (in a matter of hours) with a completely new server so there's not much to write about. I could tell you the story how I politely asked for ext4 support to be included in some future revision of the rescue system, but I got an email in half an hour stating that it was added. I could tell you that some other specific requests of mine got quickly granted, I could tell you that 100MBps connection that server has can be maxed at any time, but I better shut up. :) What I will tell you is that I got a great server, but also an excellent support. Thanks ProviderService!

And make no mistake, I'm in no way affiliated with the company, I'm just a happy customer. This article has a purpose to help other people in search of a low cost dedicated server to make a wise decision. And if for any reason you're not well served with a server located in Germany, I also have a great site to recommend that can help you in your search:

[*] Their site in the title says "Hosting since 1999", and it certainly looks like the web site was carried from the 90's, too. :) But then again, during my search for a perfect server, I've seen my share of a beautifully designed sites, only to learn that they don't have anything (good) to offer. I guess real technically competent people will never take enough care about the design details, marketing and such issues... :)

[**] The hard part when compiling your own kernel blindly (no console!) is of course to get your first successful boot with networking enabled. It's a piece of cake after that. Thus I spent half an hour learning that if you want to mount SCSI disk partition as your root partition, you definitely want to have scsi disk (sd) support compiled in. I'm now much more clever for that fact. :)


The rescue system uses the same IP as your production system. Since you access both with the regular ssh client and because the default ssh client configuration does strict host key checking (that I would not advise to turn off!) your ssh client will complain loudly when switching between the rescue system and the production one (because of the different host keys) and force you to edit your ~/.ssh/known_host file on every switch. Here's the tip how to avoid that, just put something like this into your ~/.ssh/config file:

Host rescue
User root
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

The idea is to let ssh client save the keys from your production system, but turn off key checking (and saving) when accessing the rescue system. This tip is guaranteed to slow down growth of gray hair. :)

The Basic0 is based on the Intel's DG31PR motherboard, which comes equipped with a Winbond I/O chip that can be used for voltage/temperature/fan monitoring. Also, E3200 has inbuilt core temperature sensors. If you have proper kernel modules loaded (with default kernel), or (in my case) have the following stuff compiled directly into the kernel, you'll be able to obtain many interesting temperature readings.


And here's the simple script to print all available temperatures from the system:

#! /bin/sh
echo -n "CASE: "
awk '{printf "%.1f\n", $0/1000}' /sys/devices/platform/w83627ehf.656/temp1_input
echo -n "CPU0: "
awk '{printf "%.1f\n", $0/1000}' /sys/devices/platform/coretemp.0/temp1_input
echo -n "CPU1: "
awk '{printf "%.1f\n", $0/1000}' /sys/devices/platform/coretemp.1/temp1_input
echo -n " SDA: "
hddtemp /dev/sda | awk '{printf "%2d.0\n", $4}'
echo -n " SDB: "
hddtemp /dev/sdb | awk '{printf "%2d.0\n", $4}'

Currently it says:

CASE: 61.0
CPU0: 36.0
CPU1: 29.0
 SDA: 42.0
 SDB: 44.0

61 degrees for the case (ambient) temperature is odd. It looks like about 30 degrees should be subtracted from that value. But, because I graph all those values, I actually like that it's offset, the graph is less crowded. And to read hard disk temperatures, you obviously have to install the hddtemp package.

Finally, this is what it looks like when graphed:


Load impact benchmark of this site. It looks pretty good, obviously the CPU scales quite well. We're talking about Drupal 6 w/o page cache (I never liked some side effects). I'm pretty sure the site could easily survive good slashdotting or similar without any slowdown.