How To Save Power On A Minisforum MS-01 Running Proxmox VE

In the video below, we show you how to save power for Proxmox VE on a Minisforum MS-01
When it comes to hypervisors like Proxmox VE, saving power isn’t usually the priority
But when you’re running virtual machines on a home server, and your electricity costs are high, every Watt needs to be accounted for
Now I bought a Minisforum MS-01 to lower my energy costs
But even with a mini-pc like this, there’s more energy you could be saving if you make some adjustments
So what software can you use and what BIOS settings can you apply to reduce your energy bill?
Watch the Full Video Tutorial on YouTube
Useful links:
https://linrunner.de/tlp/index.html
https://www.minisforum.com/pages/product-info
Assumptions:
At the time of recording I’ve updated the BIOS on this computer to version 1.27
And we’ll be making changes in the BIOS which I believe requires this version
Unfortunately, I don’t have another computer to compare this one against, and after reading the release notes, I have to make that assumption
So, if your computer is using an older BIOS and you find some options I’m showing are missing from your computer, then you’ll need to upgrade your BIOS
Warning:
Now before we get started I have to put out some warnings
Enabling power saving features can result in things no longer working; A device or attachment might go to sleep for instance and not wake up
In addition, things may no longer run as quickly as before and you might decide the latency is just too high to be worth it
But I’m prioritising power savings over performance to reduce my energy bill
More importantly, before you make any changes like this, make sure you have full control of the computer in case something goes wrong
For instance, the operating system could lock up after changes are applied or it won’t reboot cleanly
In that state, you’ll no longer be able to get access through SSH or the GUI
So make sure you can always access the console and the BIOS, no matter what state the computer is in
And while I use a KVM and I can control the power supply using a smart switch, sometimes physical access will still be necessary
Powertop Problems:
You might have heard of using powertop for saving power in Linux although it can be seen as more of a diagnostic tool
On other computers this has worked fine for me, but I ran into problems with it on the ms-01
That’s because the –auto-tune option caused what I believe was a kernel panic i.e. the OS became unstable
If I ran powertop in a shell session, vnc stopped working and so I couldn’t get console access to VMs
And if I ran it in an ssh session, sshd ran into problems and I couldn’t ssh into Proxmox VE anymore
Either way, a reboot resulted in the computer freezing and only a hard power reset could recover the computer
Initially I tried manually tuning things but in the end I resorted to another solution
TLP:
Have you heard of TLP, which supposedly stands for ThinkPad Laptop Power?
While it’s clearly aimed at laptops and optimising battery life, the CPU in the ms-01 is a mobile CPU, the type you would find in a laptop
And compared to powertop, this is much simpler to setup, if you know what to change that is
In which case, the first thing we’ll do is install TLP
Either open a shell session through the web GUI or login to the computer using SSH
Next we’ll run these commands to install TLP
apt update
apt install tlp tlp-rdw -y
Although the service may already be enabled and started, it’s best to make sure of that
systemctl enable tlp.service
systemctl start tlp.service
Then we’ll check the status of its service
systemctl status tlp.service
Now we’ll get some feedback from TLP
tlp-stat -s
Basically, we want to see that it’s enabled, and that it has run
TIP: If it doesn’t show a Last run status then restart the service
systemctl restart tlp.service
Now you can check the configuration settings
tlp-stat -c
Now I’ll admit straight up I’m not familiar with TLP so I asked Gemini for assistance
With a lot of trial and error, these are the configuration changes I ended up applying
nano /etc/tlp.conf
Scroll to the end and paste in these lines
# Set CPU scaling governor to powersave
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave
# Set CPU energy performance policy to "power" for maximum power saving
CPU_ENERGY_PERF_POLICY_ON_AC="power"
CPU_ENERGY_PERF_POLICY_ON_BAT="power"
# Runtime PM for PCI(e) devices (on_ac=on/auto/alpm/default, on_bat=on/auto/alpm/default)
# Note: on=disable PM, auto=enable PM, alpm=ASPM L1 (auto), default=kernel default
RUNTIME_PM_ON_AC="auto"
RUNTIME_PM_ON_BAT="auto"
# Runtime PM for AHCI (on_ac=on/auto/alpm/default, on_bat=on/auto/alpm/default)
# Note: on=disable PM, auto=enable PM, alpm=ASPM L1 (auto), default=kernel default
AHCI_RUNTIME_PM_ON_AC="auto"
AHCI_RUNTIME_PM_ON_BAT="auto"
# PCI Express Active State Power Management (ASPM): default/auto/powersupersave
PCIE_ASPM_ON_AC="powersave"
PCIE_ASPM_ON_BAT="powersave"
# Disable Bluetooth on startup (e.g., when the system boots)
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
# Automatically disable Bluetooth when no devices are connected
BT_AUTO_DISABLE="1"
# Prevent automatic re-enabling when a device tries to connect (optional, depends on your usage)
BT_AUTO_ENABLE="0"
Now save and exit
The config file is very helpful in that it shows you examples as well as the default settings, but I think it’s easier to append any active lines at the end rather than uncommenting and changing existing ones
The main goal here is to switch from the default performance mode that Proxmox VE uses to power saving
WARNING: Although you can apply changes on the fly by running the command tlp start I don’t recommend doing that
I ran into too many system lockups that required me to reset the power
Instead we’ll reboot the computer for the changes to be applied
reboot now
Once the computer is back up and running we can check the status by running this command
tlp-stat -p
What we’re particularly interested in are seeing are these lines
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = power [HWP.EPP]
Feel free to investigate the config file for further options but that’s as far as I went
And if you’ve used this yourself and know of other savings options with TLP, please share those in the video comments
BIOS Settings:
Now when I first came across the BIOS on this computer I thought it looked quite modern
But soon after I didn’t find it to be helpful or intuitive when I was looking for things like power saving options
To get into the BIOS you’ll need to power up the computer from cold or reboot it then press the Del key a few times when you see the Minisforum logo appear
Now you’ll need to click Setup and then Advanced
We can save quite a bit of power by stopping the CPUs boosting to their highest clock speed
Yes, we’re missing out on performance, but I’ve found this reduces the CPU temperatures as well which also probably means less power drawn for the fans
First we’ll change Boot performance to Max Non-Turbo Performance
Now scroll down and change Turbo Mode to Disabled
TIP: As far as I recall, the Turbo Ratio Limit Options was introduced in v1.27 but we won’t be touching those
Click on the back arrow or Advanced
Next click on Onboard Devices
I don’t use the audio and would rely on RDP anyway if I needed audio on a desktop VM
In which case, change HD Audio to Disabled
Scroll down and click SA-PCIE PORT
Despite the wording, change PCIE4 0x4 SSD ASPM to L0sL1
I’m not sure why but there is no auto option in the drop down menu but this should give us some form of auto option and allow power saving for the NVMe in slot 0
This is the fastest one in the computer which is on the left and can also support U2 SSD drives
For me that’s the one with my VMs because I wanted the fastest performance for them
I do use 10GE so I’ll leave the 10GE NICs enabled
Unfortunately, the ASPM option for the 10GE NICs is greyed out and in a disabled state, and that might have been useful
Click on the back arrow
Scroll down again and click on PCH-PCIE PORT
If you’re aren’t using the 2.5GB NICs you could disable them although they may not pull much power if not plugged in anyway
Change I226-V NIC ASPM to Auto if you plan to use this 2.5GB NIC
Change PCIE3.0x4 SSD to Disabled if you aren’t using an NVMe in slot 1, the middle one
For me this is the NVME with the OS on it so I’ll leave it on Enabled
If you do use it though, change PCIE3.0x4 SSD ASPM to Auto
Change PCIE3.0x2 SSD to Disabled if you aren’t using an NVMe in slot 2, the right one
If you do use it though, change PCIE3.0x2 SSD ASPM to Auto
Scroll down and as before you could disable I226-LM if you don’t want to use that NIC
Bear in mind, I believe this is the one that will support Intel vPro
Otherwise change I226-LM ASPM to Auto
If you won’t be using Wi-Fi on this computer then change WIFI to Disabled
Otherwise change WIFI ASPM to Auto
TIP: I’ve changed these all to Auto in case I ever change my mind and re-enable something
Unfortunately there doesn’t seem to be an option for Bluetooth
I checked the specifications which show this
M.2 2230 Wi-Fi support (Wi-Fi 6, BT5.2)
I had expected disabling Wi-Fi would disable Bluetooth as well but it doesn’t seem to
Click on the back arrow
Scroll down again and change SA GV to Enabled
Now from what Gemini was telling me, System Agent Geyserville is a precursor to SpeedStep, which is enabled by default
Although I suspect an overlap here, Gemini suggested I may as well enable this since I’m trying to save power
However, if I were to run into problems, then I should disable it
So far this hasn’t caused me any problems
Click on the back arrow or on Advanced
Now click ACPI Settings
I don’t use Wake on LAN so I’ve disabled this
While this can be useful to remotely start a computer AFTER it has been powered up and then shutdown, it just isn’t practical to me and is drawing more power if the computer is shutdown
Instead I connect a computer to a smart plug and set Restore On AC Power Loss to Always On
This way, if a computer gets stuck, I can reset the power remotely through the smart plug and it will start back up
Likewise, if there’s a power outage, the computer will boot back up when power is restored
And that’s it as of this BIOS version
To save the changes click Save & Exit
Now click Save Changes and Reset
At this stage I would suggest going away and getting a drink or something
I found it too nerve wracking waiting for the computer to POST
It seemed to take forever and I started wondering how to reset the BIOS
But eventually it did POST and Proxmox VE loaded up
Summary:
Even at first glance, I can see these changes are going to save me a lot of power
Before I started using TLP or made the BIOS changes, the computer was pulling anywhere from 25 to 28W while idling overnight
Now it’s at about 16W, which is a saving of 9W or a drop of 36%
To me that’s great as this computer is using 10GE
Now, there is a trade-off mind because I’ve noticed a desktop VM now experiences lag
The web browser for instance takes longer to load pages, but it’s tolerable
The only way to resolve this is to revert the CPU governor back to performance, but most of the power savings would then be lost
Given that replacing just one Enterprise server, which idles at about 70W, could save me over 1kW each day, it’s worth it
Now I’ll be doing more longer term testing on this computer, but what experiences have you had with the ms-01?
Let me know in the video comments
Sharing is caring!