hey
@CrisPell I have this same model and managed to optimise it to 21watts idle w 2 nvme in the base (1 using the m-e key adapter). I have a 2tb micron sata ssd, and 3 x wd red plus 8tb in zfs raid1z1 in the drive bays. The wd red plus I have ( WD80EFZZ ) are rated at 3.4W idle. Thats spinning but no reading and writing. When they do access data the total power draw of the system is like 27watts.
I tuned everything I could find in bios to low power/battery mode (without going into cstate config).
I also made sure all the containers I run aren't bashing the array unnecessarily (frequent scans etc). My lxc boot disks all run from the 2tb sata drive.
I'm dumping all the notes of my 4 different software settings I used (these worked on my other intel n100 bee link aswell).
I'm hoping you're familiar w command line and editing files w nano. Good luck and let me know if you save some power.
Reducing power consumption and heat
1.Changing Scaling governor to powersave. Run this in the proxmox host shell.
bash -c "$(curl -fsSL
https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/scaling-governor.sh)"
Rerun to change.
Source:
https://community-scripts.github.io/ProxmoxVE/scripts?id=scaling-governor
more reading
https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors
https://wiki.archlinux.org/title/CPU_frequency_scaling
2.Powertop tunings
apt update
apt install powertop
Create a service file to run powertop --autotune on startup
nano /etc/systemd/system/powertop.service
----
[Unit]
Description=Powertop tunings
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/powertop --auto-tune
ExecStartPost=/bin/sh -c 'for f in $(grep -l "Mouse" /sys/bus/usb/devices/*/product | sed "s/product/power\\/control/"); do echo on >| "$f"; done'
[Install]
WantedBy=multi-user.target
----
save and exit
systemctl daemon-reload
systemctl enable powertop.service
systemctl start powertop.service
Or to disable
systemctl stop powertop.service
systemctl disable powertop.service
systemctl daemon-reload
3.Set CPU energy performance preference to 'power'
***note this only works when scaling governor is set to powersave already
First, create a shell script /usr/local/bin/set_energy_performance.sh (and chmod +x it)
nano /usr/local/bin/set_energy_performance.sh
———
#!/bin/bash
for cpu_path in /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference; do
echo "255" > "$cpu_path"
done
———
save and exit
chmod +x /usr/local/bin/set_energy_performance.sh
Next create a systemd service file to run this script on boot /etc/systemd/system/set_energy_performance.service:
nano /etc/systemd/system/set_energy_performance.service
-------
[Unit]
Description=Set CPU energy performance preference to 'power'
After=multi-user.target
[Service]
Type=oneshot
ExecStartPre=/bin/sleep 90
ExecStart=/usr/local/bin/set_energy_performance.sh
[Install]
WantedBy=multi-user.target
---------
save and exit
And then finally enable the service with
systemctl daemon-reload
systemctl enable set_energy_performance.service
systemctl start set_energy_performance.service
It takes awhile to complete the last one because of the sleep 90 in the script.
Or to disable
systemctl stop set_energy_performance.service
systemctl disable set_energy_performance.service
systemctl daemon-reload
4.Set CPU energy performance bias to ’15’ (power)
crontab -e
Add to it the one line
@reboot (sleep 60 && echo "15" | tee /sys/devices/system/cpu/cpu*/power/energy_perf_bias)
Comment out again with # to disable
Utilities to see what power is currently set. These I got from another forum post awhile ago - not sure where it is.
Checking CPU info
Check currently used driver:
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
Check currently used governor:
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Check currently used performance preference (epp)
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference
Check currently available performance preference (epp)
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_available_preferences
Check currently used energy performance bias (epb)
Bash:
cat /sys/devices/system/cpu/cpu*/power/energy_perf_bias
Check current clock speeds (once):
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
Check current clock speeds (continuous):
Bash:
watch -n 1 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
Check available governors:
Bash:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors