From measuring my electric scooter’s power consumption to the “rest” mode draw of my PS4, diving into energy savings has been a bit of an obsession of late. Dork, ahead, you’re been warned :-).
I have a older dual core Celeron Intel NUC running 24/7 in the house. It hosts NextCloud and phone backups along with a Jellyfin server for streaming my music collection. This is not traditionally exposed to the internet but is accessed via a “open-source software defined mesh virtual private network“. Big words but the basics have become simple to implement (see Tailscale or Nebula).
Time to look at the power this device consumes. It’s about optimizing really, as the Kill-a-watt can barely measure it’s draw.
Nested down in /sys/devices/system/cpu/cpuX/cpufreq/ is a config file called “scaling_governor”. Mine has a single entry called “schedutil”. Looking over the definitions at kernel.org it seems indeed, that is what I want set.
I found an article called “Go Green: How to Optimize Server Power Usage with PowerTOP” which sounded promising, and indeed it was.
PowerTOP is a command line tool that works on a variety of architectures. It allows you to evaluate processes and hardware in your system and even recommends “fixes” to improve matters. These can be automated via PowerTOP or implemented manually on the system.
On my small device running Ubuntu 22.04.1 29 items as “good” and 9 items that needed attention:
- VM writeback timeout
- NMI watchdog should be turned off
- Autosuspend for USB device ThinkPad Keyboard
- 6 devices that should have Runtime Power Management enabled
Not yet knowing what effect “fixing” these items will have (and, <cough> what some of them are), it’s time to image the system before proceeding.
A part 2 may be forthcoming. Wish me luck :-).