In an effort to make the homelab more environmentally friendly, I have started to explore ways to conserve energy consumption. I always see a lot of considerations for choosing equipment that sips power, but other than avoiding enterprise power hogs and very old equipment, I don’t see a lot of advice in how to tame the server(s) you may already have.
So far I’ve looked at:
- TLP: Adjusts CPU frequency scaling, PCI‑e ASPM, SATA link power‑management
- Powertop: Used to profile power consumption and has a tune feature
sudo powertop --auto-tune - cpufrequtils: Used to manage the CPU governor directly
- logind.conf: Can be used to put the whole server to sleep when idle
Since I am the only user of my network, and since a lot of times the server sits unused until I want to engage maybe listening to my audio collection via Navidrome, or perhaps I’m working on some automation in n8n, et al, there’s no need to be at max power 24/7.
So besides just powering off and on the server, which would work but not be quite as elegant of a solution, are there other ways you have come across, read about, deployed on your own server?
ETA: Thanks for everyone’s input. I realize that the ideal scenario is to have more energy effecient equipment. Sometimes tho, this is not a ready made solution due to many constraints. The exercise was to try to squeeze out every last little power saving option I could, without obviously replacing equipment.
Many thanks.
The number one thing you can do, by orders of magnitude, is to start with power-friendly hardware.
For example, my previous server was an old gaming machine. It’s lowest idle power consumption was 80 watts. That was with running an OS that permitted heavy power reduction control, and enabling every power saving feature in the BIOS.
Compare that to my 2019 Dell Optiplex Small-Form-Factor desktop I’m running as a server. The power supply is rated for 80 watts, MAX. It idles at 20w, peaks at about 70w when converting multiple videos simultaneously. This with an 8 TB enterprise drive for data.
So 1/4 the power draw when idle, where it spends perhaps 90%+ of its time. Even things like Resilio Sync and Syncthing don’t significantly raise CPU time.
Streaming with Jellyfin or Mediamonkey have nearly no CPU impact.
There’s nothing in heavier hardware you could tune to get down to 20w.
For pure energy efficiency it’s hard to beat an SBC (raspi, rockpi). Mine does a good job with Jellyfin streaming so long as I avoid transcoding.
Yep.
My Pi is about 8 watts. Really hard to beat.
The SFF started at 12w, but swapping out the data drive for a much larger one pushed it up 5w. And now with 2 VMs always running (PiHole and a Windows VM), it hovers at 20w.
The ancient NAS (Drobo) sits at about 15w.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System NAS Network-Attached Storage PiHole Network-wide ad-blocker (DNS sinkhole) SBC Single-Board Computer
3 acronyms in this thread; the most compressed thread commented on today has 4 acronyms.
[Thread #983 for this comm, first seen 5th Jan 2026, 23:15] [FAQ] [Full list] [Contact] [Source code]
Yo, this is amazing
I downgraded from used enterprise gear to those ultra small form factor PCs. They sip power well enough on their own that I haven’t really bothered tuning anything. I suppose I could cap the frequency with
cpufrequtilsand set the governor to conservative rather than on-demand (I do this with my battery-powered RasPi projects) but I’m not sure how much difference that’ll make for my servers.In the past, I had Docker Swarm setup and automation to collapse the swarm down to a single machine (powering the other ones down and back on with WoL) but that was more trouble than it was worth. On average load, the USFF PCs run at about 15 watts and don’t usually peak above 30 unless they’re rebooting or doing something very heavy. Even transcoding doesn’t break 20 watts since I’m using hardware acceleration.
The biggest power savings I found that was worth the effort was to just get rid of the enterprise gear, switch from VMs to Docker containers where possible, and get rid of stuff I’m not using (or only run it on-demand).
The only remaining enterprise power suck I have left is my managed switch. It’s a 2005-era dinosaur that’s loud and power hungry, but it’s been a workhorse I’m having a hard time parting with.
This is pretty tricky. Sure you can tweak your CPU all day to try to get some lower power usage, but to get more drastic changes, it really starts at the hardware your using. I would suggest getting a N100 nas maybe? But it kinda defeats the saving money on power usage if you have to spend $150-$300 to do so.
generally TLP can do all of the above, so what I do is use powertop and tlp-stat for checking the current configuration, and tlp.conf for setting the configuration
Thank you. Powertop & tlp have been deployed. So now I’ll need to tweak and test.
It starts with the hardware first. You started well with tuning your CPU/MEM frequency settings, but that matters less if you’re running giant PSUs (or redundant), more drives than you need, and a huge number of peripherals.
Get a cheap outlet monitor to see what your power draw is and track it at the wall. I just got these cheap Emporia ones. I’m sure there’s more reputable ones out there.
Don’t go crazy with your networking solution if you don’t need them. PoE switches draw tons of power even when idle, and a 24-port switch is a huge draw if you’re only using 3 of them.
Consider getting a power efficient NAS box for backend storage, and low power Minipc for frontend serving instead of using a power hungry machine for all your network apps.
You can dive deeper into any angle thing, but these are the basics.
Honestly, every hw that is not going automatically into a power save mode when not used is utterly crap, even my home grade switches are able to do so.
So, the only thing you need to do is to buy recent hw and of course not over size your hw necessities. But recent hw tends to be more expensive, so in the end, it is an excel driven decission.
And once this is said, be careful, some hw suffer more for a on/off cycle than from a continuous power on mode. Think in hdd power cycles or condensation/ salt-rust problems in high humidity areas.
I have never seen a switch not being in use basically 24/7.
And if only 1 device is attached: This is basically a glorified extension cord.
@irmadlad Instead of using
--auto-tune,I used the output frompowertop --htmland created some udev rules for activating of power management functions of relevant devices during startup.
With--auto-tunesome of my USB HID devices like mice are getting not usable because of activated power management.I used the output from
powertop --htmlNoted.
It’s not like I’m running big enterprise equipment that dims the lights every time I power it on, but when I’m snoring in bed at night, other than a few crons that run, I don’t see a need for the server to be at max. I want to cut out as much wasted power consumption as possible, even if it’s just a little here and a little there. It all adds up. It’s something I’ve been noodling around with for a bit, but if I were to make a new years resolution for the homelab, I’d like it to use the least amount of power, while not creating a lot of hindrances when I am engaging with the server.
@irmadlad That have also been my intentions, when I created the udev rules.
They are most generic and I use them on several systems for reducing some small power consumption.
Example: enabling of PCI power managementACTION=="add|change", \\ SUBSYSTEM=="pci", \\ ATTR{power/control}="auto"The things, which you listed in your first post are from my view good topics, for getting maximum results from minimum effort.
I started at
https://wiki.archlinux.org/title/powertop
and went further from there.Thanks for that and the arch link. I may have some follow up questions later on if you don’t mind terribly.
@irmadlad You are welcome.
The Arch Wiki also has a lot information about Power Management.
And I would say, most of them are independent if Arch Linux is used or not.






