🄸🅁🅀␀


2023 Home Server Build

Requirements

Very low, ideally no fan noise.

ECC RAM. I like my data.
Limits options, doesn't cost much more.

Low power consumption. Ideally < 10W idle.
Can live with a 15W average.

Sandy Bridge i5 throttled to 1.4GHz because of fan noise CPU performance: Anything faster than my old ThinkPad X220 doing server duty

IO: ≥ 1 PCIe slot for either an NVMe SSD or 10G Ethernet. 4 SATA ports.

..if I ever want to connect a 5K2K display GPU: Integrated graphics. Nice to have: DisplayPort 1.4

Form factor: ITX. There are nice, small, passive-cooled cases available for the HTPC market that make sense for home server use as well.

Maximize: M2 NVMe slots, SATA ports, Network ports.

Hardware

RAM 32G 2x16G DDR4 2667MHz
CPU AMD Ryzen 5 PRO 4650G, 6x3.7GHz
Mainboard ASRock B550 Phantom Gaming-ITX/ax (AM4)

CPU: Originally wanted to use the Ryzen 3 PRO 4350G as it is already plenty. The Ryzen 5 PRO was cheaper and had better availability 🤷.

I’ll just set the TDP limit to 35W in the BIOS later hoping for power savings. There were TDP 35W and TDP 65W models listed. Again went with the 65W version as it was cheaper and had better availability.

I narrowed to my search to a handful of mainboards having ECC support using either an A520 or B550 chipset (skipped X550, because fans). There aren't many and differences are small.

At the end I chose the ASRock, because it had two M2 slots supporting NVMe SSDs. WiFi and Bluetooth is also nice to have.

Case

I found the Streacom DB4 by narrowing down passive cooling cases on Geizhals.

Nice! The box will probably end up being my SSD graveyard.. According to spec it should be able to cool 65W CPUs and house up to 12(!) 2.5" disks.

I use the Nano 120 Watt PSU. Some anecdotal evidence suggested that it is more efficient. As I don't have a dedicated GPU or spinning disks 120W will be plenty.

Rejected Intel Build

CPU Intel Pentium Gold G5420 2C/4T
or Core i3-8100T, 4C/8T
Mainboard ASRock Rack C246 WSI board.

Rejected because the AMD build has more performance / euro and better availability.

The C246 WSI has VGA(?!), 2x Ethernet and only 2x USB The few Intel ITX boards I found with ECC RAM support seemed designed for real server use.

I originally wanted to go Intel. Power management tends to be better on Linux. For example, the kernel only gained better AMD CPU frequency scaling support in 5.17 (my distro ships 5.14).

I did find some anecdotal hope that the AMD build will be ok in Renoir und B550 - Die Idle-“Künstler“? and ASRock Deskmini X300 + Ryzen 3 PRO 4350G: benchmarks and power consumption

Idle / Typical Load Power Consumption

./grafana_power.png

Typically around 16W with 3 SATA SSDs.

Stress Test Power Consumption and Temperatures

./grafana_stress_power.png

stress-ng --cpu 0 --cpu-method all -t 20m

CPU temperature goes close to 80℃, power consumption close to 50W.

The CPU cooler side measured about 15℃ over ambient temperature during the test.

Room temperature was around 20℃.

Software

System runs openSUSE Leap 15.4, kernel 5.14.21.
No issues so far.

lm-sensors

sensors needs additional configuration. I use one for the related ASRock B450 board from github.

amdgpu-pci-0500
Adapter: PCI adapter
vddgfx:       +0.72 V
vddnb:        +0.85 V
edge:         +30.0°C
slowPPT:     1000.00 uW

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +30.9°C

nct6792-isa-0290
Adapter: ISA adapter
Vcore:        +0.69 V  (min =  +0.00 V, max =  +3.49 V)
AVCC:         +3.33 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
+3.3V:        +3.31 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
3VSB:         +3.42 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
VBAT:         +3.28 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
+12V:        +12.14 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
+5V:          +5.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
CHA_FAN1:       0 RPM  (min =    0 RPM)
CPU_FAN1:       0 RPM  (min =    0 RPM)
CHA_FAN2:       0 RPM  (min =    0 RPM)
VRM(?) temp:  +33.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
MB(?) temp:   +34.0°C  (high =  +0.0°C, hyst =  +0.0°C)  ALARM  sensor = thermistor
CPU temp:     +30.5°C
beep_enable: disabled

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:            N/A