"Green" Server

In February, 2016, I replaced my aging Intel Atom Mini-ITX server with a more capable version. The server needed to be snappy enough to run production websites for a small business, and while traffic was expected to be minimal, each request should be served snappily.

The design parameters were thus:

  • Relatively low power draw
  • High single-threaded performance
  • Quiet
  • Cheap
  • and, of course, reliable

The configuration I've ended up with, is the following:

Not surprisingly, the hostname for this system simply ended up bring “green”.

Considerations

CPU / Motherboard

I expect this server to primarily host sites that have low traffic volume, and thus I focused on processors that offered high single-threaded performance, possibly sacrificing some parallelism. I ended up going for the Core i3 3.2 GHz part with just two cores. Each core can burst up to 3.7 GHz, though, which means that it is well-suited for my workload of low-volume, fast-turnaround requests. And it fits the lowest power envelope of 35 Watt TDP.
Going for the Socket 1151 option means that, in case I'm wrong and my sites do start seeing high traffic, I can swap the i3 for a more parallel component. So, my selection of motherboard focused mainly on parts that supported this socket, while giving me as many SATA ports as possible, while still remaining relatively cheap. I knew I'd be fitting at least four disks in the system, so that was the bare minimum. And, as it turns out, it is actually pretty damn hard to find cheap motherboards that support a lot of SATA lanes–so, I ended up with just the four. It does, however, have the option of mounting an mSATA disk, which could allow me to go with 4 x 3.5“ disks for storage and 1 x mSATA for the system (at the expense of redundancy on the system disk).

RAM

I needed 8 GB, and I simply went for the lowest cost/lowest CL rating part that I could find at 2133 MHz, which is the maximum that the motherboard supports. Going for a single 8 GB stick, means that I'll be able to double the RAM if needed without having to discard my already-purchased stick.

Case

I knew I needed to fit a lot of disks in the case. I've previously experimented with an external eSATA chassis with four disks, which ended horribly. Firstly because I didn't realize that the motherboard the chassis was connected to needed to support SATA port multiplier in order to run more than one disk off the eSATA, and secondly because the part's PSU needed to be quite beefy, and thus was fitted with a tiny, but extremely annoying fan.
So, i wanted to go big. Lots of room for disks inside the case, and lots of room for big, silent fans. Browsing lots of reviews, the BitFenix case seemed to fit very well. It can hold five 3.5” disks and a 5.25“ drive. All disk-swapping is tool-less, as is the opening of the case. It has room for a full-size PCIe card if I ever need to mount one, and it can also hold a massive CPU cooler if I decide I need something more quiet than the stock Intel one I have now.
The case IS a little plastic-y, and I worry a bit about breaking it when I carry it around by the “handles” that protrude off the top. I feel better holding my hand under it. But then again, it was very cheap, and for the price, I think it's been absolutely great!
I went lime-green because, hell, why not?
Beware, that some reviews on the Internet mention that the clearance for the PSU mount under the motherboard is such that you may not be able to fit the very-largest of PSU in there!

PSU

Which leads me to the PSU. I needed a part with 4 x SATA power connectors and enough beef to run my system. Other than that, the main selection criteria was noise. Unfortunately, going for low noise also means going for maximum size (larger fans == less noise), which conflicts with the warning above. The PSU I got measures 14 x 14.9 x 8.5 cm, and fits in the Prodigy case with no problem at all. The part is also virtually silent.
One possible minor drawback of this PSU, however, is that the SATA power connectors i needed are arranged in pairs of connectors on the same piece of wire. The distance between the two connectors of a pair is very short, so you also need to be able to arrange disks by twos lest you need to get extra cabling.

Harddisks

For this system, I needed to get new disks for the non-encrypted system volumes, as they were previously on a single 2.5” disk with no redundancy. I was unwilling to pay for server-class disks, so I went for the lowest-noise, lowest-power draw parts that I could get for cheap. I probably should have gotten two different brands for my RAID 1 setup, like I have with the storage array, but this is “just” system files, all of which can be recreated if the disks fail simultaneously.

Software Setup

Gentoo CFLAGS

At the time of installation, no CFLAGS particular to the Skylake architecture were available for gcc, so I simply went with the recommendations for the previous-generation Broadwell architecture:

CFLAGS="-march=core-avx2 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"

Results

Performance

As far as performance goes, I'm pretty happy with the results. The server is running this site, so feel for yourself. It's sitting on a domestic Internet connection, though, so there is some delay for TCP handshakes etc., which seem not to be prioritized by my ISP. Compile times under Gentoo are generally very fast, especially considering that this is only a two-core part. If ever the need arises to handle more simultaneous traffic on my sites, the system can be upgraded to any of the CPUs in the Skylake series, potentially adding a lot more cores to the mix.

Noise

This new system is appreciably more quiet than my last setup. The previous Atom-based system was generally low-power, but was also a much physically smaller system, which meant that it needed to have small, high-RPM coolers. They gave off a very annoying high-pitch whine, which is completely gone with this system. The loudest components in the system are the harddisks.

You could leave a comment if you were logged in.
setup/gentoo/server/green_config.txt · Last modified: 2016/02/17 17:34 by fronck
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki