Several people have asked me about the mini-server I have set up. First I will summarise the way I intend to use the machine, then explain how I took those guidelines to make requirements for each component and finally I’ll list the components selected.

How The Machine Will Be Used

  • On 24/7 (much of the time idle)
  • Running services including:
    • MySQL
    • Tomcat (running on OpenJDK)
    • NFS
    • Samba
    • Squeezebox Server
  • Data will be backed up regularly to 2.5” 7200 rpm USB disks.

Considerations Based on the Requirements

CPU

Until the Zero-Assembler Project is complete, OpenJDK supports only a limited number of CPU platforms. The 2 platforms that are most suitable for a mini-server are x64 or ARM. Of these, only x64 is supported by OpenJDK. All x64 CPUs should be capable of running the currently foreseen programs. A low power CPU would be preferable. The most popular choices are:

  • Intel Atom D2700
  • AMD E350
  • AMD E450

To this list I will add a slightly unusual candidate:

  • Intel Celeron 847

For this server, it will be in a near idle state more that it will be active. Idle energy consumption should be a reasonable predictor of actual energy consumption. The power of the combination of CPU, chipset and motherboard is more important than the CPU in isolation.

There is a comparison of several motherboards at hardware.info. The lowest power consumption for each CPU type is included in the table below (note the worst performing boards draw >50% more power than the best). The website does not list a Celeron 847 motherboard, so for that CPU, I have taken the figures from silentpcreview.com

Clock speed is quite a poor indicator of CPU performance when comparing different architectures. A better comparison is to use a benchmark. I’ve added the figures from cpubechmark.net to the table below.

CPU Clock Speed (GHz) TDP (W) Idle (W) PassMark
AMD E350 1.6 18 20.0 609
AMD E450 1.7 18 22.9 805
Intel Atom D2700 2.13 13 21.3 833
Intel Celeron 847 1.1 17 20.0 1046

The Celeron draws the equal lowest power and in the benchmark out performs the other CPUs significantly. This surprised me, investigating further I found that the Celeron performs graphics tasks quite poorly, so for many applications the more popular CPUs would actually be a better fit. For my use though the Celeron looks ideal, so I have used that CPU.

Disks etc

All data (including operating system) is stored on a RAID mirror. In case of a single drive failure the machine will continue to function. There are 3 options for RAID: software, firmware or hardware. There are low power motherboards available that have firmware RAID but none that have proper hardware RAID built in. To use hardware RAID an expensive addon card would be needed. RAID 1 (mirroring) is the least complex RAID level, a hardware RAID controller will usually only slightly out perform software RAID - it didn’t seem worth it for this machine. There is no standard for how firmware RAID controllers store data on the disk. This can make recovering data from the drive difficult if the controller fails. With a drive taken from a Linux RAID mirror, it is very easy to mount even for example if the drive is in an external caddy, so I’ve used Linux RAID.

Many of the tasks will not require fast disk IO, however the one that will be most affected is bulk backups. The performance of a bulk backup will be at most as fast as the backup medium. The fastest backup disk is a Hitachi Travelstar 7k500. CrystalDiskMark 500MB sequential transfer test shows a maximum read rate of 110.4 MB/s. For the mini-server the lowest power 500GB hard drive that supports comparable throughput would be ideal. The first 4 rows in the table show typical values for 2.5” and 3.5” drives in 5400 rpm and 7200 rpm spindle speeds.

Model Physical Size Spindle Speed IO Meter 2MB sequential read Max CrystalDiskMark 500MB Idle Power (W)
Western Digital Caviar Black 3.5” 7200 133.04 145.4 6.41
Western Digital Caviar Blue 3.5” 5400 131.0 149.9 5.47
Western Digital Scorpio Black 2.5” 7200 103.54 110.2 0.99
Western Digital Scorpio Blue 2.5” 5400 93.03 99.66 0.63
Western Digital Scorpio Blue (WD5000LPVT) 2.5” 5400 116.58 120.8 0.6

The last row shows a single platter 2.5” drive which is idea for this server. The read speed is faster than typical 7200 rpm drives and it consumes less power when idle than typical 5400 rpm drives. Note I’ve listed the exact model number as there are other drives that are named “Scorpio Blue 500GB” that are multi-platter drives and do not have these characteristics.

Connectivity

USB 2.0 can theoretically support data transfers of 60MB/s which is around half the peak sequential read and write speed of the internal and external drives. The faster alternatives are USB3 or eSATA. My laptop supports USB3 and in general is more widely supported (especially due to backwards compatibility), so I’ve opted for USB3.

Case / PSU

The Antec ISK 110 is compact, with good ventilation and a 92% efficient PSU. It accommodates 2x2.5” drives but provides almost no superfluous space.

Misc

I only found 1 family of motherboards that have Celeron 847 CPUs and supports USB3 on the chipset. Due to the small CPU heatsinks, a fan is required. The 40mm fan that is provided with the motherboard spins quite fast and is quite noisy. because of the close proximity of the CPU to the mesh side of the case it is possible to mount a fan to the case that causes air flow through the heat sink. Noctura make premium fans that are efficient, quiet and come with a 5 year warranty. I selected a 140mm fan that supports PWM speed control. The speed is controlled through the BIOS based on the temperature. Once booted but idle, with the stock fan and an ambient temperature of 18℃ the CPU temperature remains about 40℃. With the Noctura running at 60% duty cycle (the lowest this BIOS supports) the CPU idles at about 29℃. The fan is quiet but not quite silent. When the hard disks are active they are considerably louder than the fan.

Component List

Item Description Price
Motherboard/CPU Asus C8HM70-W/HDMI £63.04
Fan Noctura NF-A9x14 £14.95
Memory Corsair Vengeance 8GB DDR3 £39.22
Hard Drives 2x Western Digital Scorpio Blue 500GB 7mm (WD5000LPVT) £83.83
Case / PSU Antec ISK 110 £69.57
Total   £270.61

Performance

So far every task I’ve used it for has performed as expected. Restoring data from an external drive over USB3 averaged over 70MB/s even though many of the files were small. When booted but sitting idle, the power consumption is steady at 17.5W. I think this is good - the energy consumption is less than most of the single disk system on the market. I have also written a sleeponlan script that suspends the machine when inactive for a while. I’ll post some info on that later.

Photos

Left side of the server again Internal view of the server Outside of the server showing whole to mount fan Inside view of the side panel, showing the fan mountings