Reducing power consumption of a desktop PC
My current home server, a Raspberry Pi4 with 4GiB RAM is running out of memory and i wondered whether i could convert my existing desktop PC into a home server. The Pi4 with a SSD connected over USB consumes only 7.1W at idle and 9.9W at load. Before i replace the Pi with the desktop, i wanted to check if it could achieve low power consumption at idle.
Desktop specs
- AMD Ryzen 2600
- 32GiB RAM
- PRIME X470-PRO
- RX 7700 XT
- Super flower LEADEX III GOLD 850W SF-850F15HG
- AX200 WiFi
- 2 SATA SSDs, 1 HDD, 1 NVMe disk
Power measurement was done using a cheap power meter at the power plug. The PC was measured to be idling at 65W.
Power reduction steps
LEDS
Turning off the RGB LEDs saved 7.6 watts
LED | Power saving (W) |
---|---|
Case fans | 5 |
GPU | 1.8 |
Motherboard | 0.8 |
Since the Motherboard does not have an ARGB LED controller, the case fan LEDS are being driven by a Blue Pill board running USB CDC stack(so that the colours can be controlled from Linux). This board along with the large number of LEDS on the two fans explains the 5 Watts.
USB gadgets
After unplugging all the USB gadgets, including keyboard, mouse, speakers and a lamp, the power consumption is reduced by 2.2 Watts.
Fans
Turning off most of the fans and reducing the CPU fan speed to the lowest value possible saves 1.8W.
Reducing RAM clock
There are three RAM sticks, two of 8GiB and one of 16GiB. RAM was set to run at 3200 MHz, by reducing it down to 2133 MHz and a lower voltage, we can save 4.3W.
CPU Undervolt
CPU undervolt makes no difference in idle power, but under load(stress -c 12
), an undervolt of 50mV saves 10W.
PCI ASPM
Enabling ASPM L1 saves 8W but reduces NVMe disk read performance from 1.33 GiB/s to 1.28 GiB/s. It also causes the kernel to complain about PCIe correctable errors.
powertop auto tune
Running powertop --auto-tune
saves 1.6 W.
GPU
The GPU is set to low power mode by running.
echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
after which nvtop
reports an idle power of 7W, down from 20W in auto mode. Disconnecting the HDMI cable saves another 2 Watts.
Final result
After completing the above steps, idle power reduced down to 40W from the initial 65W. However this remains relatively high for a home server that is supposed to be idle most of the time, especially compared to the approximate 10W seen in mini PCs.