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.

  • Onomatopoeia@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    3 days ago

    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.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      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.

      • Onomatopoeia@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 days ago

        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.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    1 day ago

    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]

  • Admiral Patrick@dubvee.org
    link
    fedilink
    English
    arrow-up
    7
    ·
    3 days ago

    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 cpufrequtils and 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.

  • ISolox@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 days ago

    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.

  • Jumuta@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    3 days ago

    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

  • thelittleblackbird@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 days ago

    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.

    • Appoxo@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      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.

  • just_another_person@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    3 days ago

    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.

  • @irmadlad Instead of using --auto-tune, I used the output from powertop --html and created some udev rules for activating of power management functions of relevant devices during startup.
    With --auto-tune some of my USB HID devices like mice are getting not usable because of activated power management.

    • irmadlad@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      I used the output from powertop --html

      Noted.

      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.