Math
In a homelab environment getting your server to consume as little power as possible usually makes a big difference for the powerbill. Here are some tips and tricks i found for reducing your power load.
I recommend using a smart plug to monitor your power usage to get a feeling for which amount of power you are using and when. I use a Meross Smartplug and Homeassistant for monitoring the power usage of my equipment.
While spikes in power usage usually dont contribute much to power usage, the average baseline contribute much. You can easily calculate your yearly spend by using this formula: (If you have a fixed power cost)
Usage in kW (e.g. 0.05 for 50 W) x Powercost per Kwh (e.g. 0.30 €) x 8760 (hours in a year)
In this example I am calculating the yearly power cost of a system that uses an average of 50 W at the cost of 0.383 €/kWh which was the average residential electricity price in Germany as of December 2024:
0.05 x 0.383 x 8760 = 167.754 €
So in this example the server would cost you about 168 € per year which is approximately 14 € per month.
How to reduce
When trying to reduce your power consumption there are some hardware facts that you need to consider:
- GPUs consume a lot of power. If you just want to play around with virtualization, linux, networking, containerization, or similar you won´t need a GPU. Just remove it from the system. If you do want to play around with desktop virtualization or ai you can disable the gpu in the Proxmox kernl and pass the whole PCI bus through to the VM. Then the GPU should only consume more power if the VM is on.
- HDDs consume quite a lot more power than SSDs. If you have the budget, build your Proxmox server using only SSDs. Only use HDDs for Proxmox Backupserver. Slow I/O is one of the main and often overlooked performance issues. You´ll just have a better time using SSDs. (Stay away from the really cheap, they tend to not have enough cache and can have terrible latency)
- Get an efficient PSU.
- Get rid of unused periferals and devices. and turn off RGB.
- High performance and enterprise equipment might use a lot of power even when idling. Don´t install 10Gbit/s network cards if you don´t need them. They might prevent your CPU from entering sleep states.
Login to your Proxmox server over SSH. You will need to do the following steps on all your hosts in a cluster.
Optimize Kernl and performance mode
Check the performance mode off all of your cores:
root@vmhost1:~# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
Install Kenel Tuning tools:
apt install linux-cpupower tuned powertop
Set the govenor to powersave:
cpupower frequency-set -g powersave
Finally, set the tuned profile to powersave:
tuned-adm profile powersave
Optimize Network Interfaces
If your switch and nic support it, enable energy-efficient Ethernet (EEE):
ethtool --set-eee enp12s0 eee on
ethtool -C enp12s0 rx-usecs 125
HDD
If you have an HDD as an auxilerary volume you can set the spindown timer to 10 min:
hdparm -S 120 /dev/sdX
After playing around with these parameters reboot your host and you should see a change in your energy consumption. Also play around with the perofmance settings in your vms. RHEL/Rocky/Alma support tuned-adm and you can achieve much with using it.
Holy grale for efficiency: laptop cpu with current gen intel architecture
Lastly, if you have very old hardware you should consider upgrading to a current-gen intel cpu with p and e cores. (performance and efficiency) This change in architecture makes a big difference for power consumption. You might get away with a more power-optimized laptop chip.
I recently bought a Minisform NPB7 with a 13th Gen CPU and it made a huge difference compared to my “old” i3 9th Gen.
Here is the comparison of my old minipc and my new NPB7 with the same workload:


Happy energy saving!
PS: in the winter every watt you spend on power is not wasted and goes to heating your home.
No ASPM? Notthebee has a nice script for that
I tried editing the grub file and I did not have great experiences with ASPM on my systems so i did not include it in the article. Thanks for pointing me to the AutoASPM from notthebee, it looks interesting! I will have a look at it.