Set CPU Power Management on Linux
Prerequisites
Install `cpupower` if missing:
sudo apt-get update
sudo apt-get install -y linux-cpupower
Verify CPU frequency scaling support:
ls /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
Installation
Create `/etc/systemd/system/cpu-thermal-control.service`:
[Unit]
Description=Apply powersave governor, balance_power EPP, and frequency limits
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'cpupower frequency-set -g powersave && echo balance_power > /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference && cpupower frequency-set -u 4GHz'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable --now cpu-thermal-control.service
Usage & Power Save Mode
- The service sets CPU governor to powersave, EPP to balance_power, and caps max frequency. - To enable more aggressive power saving, modify `ExecStart` to use:
ExecStart=/bin/sh -c 'cpupower frequency-set -g powersave && echo powersave > /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference && cpupower frequency-set -d 800MHz -u 2GHz'
- Reload and restart service after changes:
sudo systemctl daemon-reload
sudo systemctl restart cpu-thermal-control.service
- Check CPU frequency info:
cpupower frequency-info
For Proxmox Users
Proxmox defaults to performance mode causing higher CPU temps. This service:
- Switches to powersave governor, - Applies balance_power or powersave EPP, - Caps CPU frequency for cooler, quieter operation.
Ensure kernel supports CPU scaling and adjust frequency caps as needed for your hardware.
Start this service on Proxmox nodes to improve thermal management and power efficiency.
Troubleshooting
Check service logs for errors:
journalctl -u cpu-thermal-control.service
Verify permissions and CPU frequency scaling support.
Sources
- [Linux cpupower Documentation](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html)
- [systemd Service Files](https://www.freedesktop.org/software/systemd/man/systemd.service.html)
- [EPP Documentation](https://www.kernel.org/doc/html/latest/admin-guide/pm/energy_perf_bias.html)