Set CPU Power Management on Linux: Difference between revisions

From Jwiki
Created page with "Category:System Services Category:CPU Power Management Category:Proxmox VE Category:Guides & Tutorials == Prerequisites == Install `cpupower` if missing: <syntaxhighlight lang="bash"> sudo apt-get update sudo apt-get install -y linux-cpupower </syntaxhighlight> Verify CPU frequency scaling support: <syntaxhighlight lang="bash"> ls /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference </syntaxhighlight> == Installation == Create `/e..."
 
No edit summary
 
Line 1: Line 1:
[[Category:System Services]]
[[Category:General Linux]]
[[Category:CPU Power Management]]
[[Category:Proxmox VE]]
[[Category:Proxmox VE]]
[[Category:Guides & Tutorials]]
[[Category:Guides & Tutorials]]

Latest revision as of 21:04, 22 November 2025


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