Voltar para as notas
linux
systemdLinux

Definir o governor da CPU no Linux para schedutil

Um guia rápido para definir o governor da CPU no Linux como "schedutil", buscando equilíbrio entre desempenho e eficiência de energia, incluindo persistência após reboot.

O governor schedutil costuma ser a melhor escolha em kernels modernos, usando dados de utilização do scheduler para tomar decisões de frequência mais rápidas e mais precisas do que governors antigos como ondemand.

A seguir, como habilitar e deixar persistente.

1. Instalar ferramentas

Primeiro, garanta que você tem as ferramentas necessárias instaladas. No Ubuntu/Debian:

sudo apt update
sudo apt install linux-tools-common linux-tools-generic

2. Definir o governor (imediato)

Você pode definir o governor imediatamente para a sessão atual. É uma boa prática ajustar também os limites de frequência, se necessário.

sudo cpupower frequency-set -g schedutil
# Opcional: definir limites explicitamente se precisar, mas normalmente é automático
# sudo cpupower frequency-set -g powersave
# sudo cpupower frequency-set -g performance

Verificar

Confira se a política foi aplicada:

cpupower frequency-info | grep "current policy" -A2

Você deve ver algo parecido com:

current policy: frequency should be within 1.20 GHz and 3.60 GHz.
                The governor "schedutil" may decide which speed to use

Para checar CPU por CPU:

grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Todos os cores devem reportar schedutil.

3. Tornar persistente (systemd)

Para garantir que isso sobreviva após reiniciar, crie um serviço systemd simples.

Crie o arquivo do serviço:

sudo tee /etc/systemd/system/cpupower-schedutil.service >/dev/null << 'EOF'
[Unit]
Description=Definir o governor da CPU como schedutil
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g schedutil

[Install]
WantedBy=multi-user.target
EOF

Habilite e inicie o serviço:

sudo systemctl daemon-reload
sudo systemctl enable cpupower-schedutil.service
sudo systemctl start cpupower-schedutil.service

Depois de iniciar, rode o comando de verificação novamente para confirmar.

4. Limpeza (opcional)

Se você já criou um serviço para alto desempenho (por exemplo, cpupower-performance.service), desabilite e remova para evitar conflitos.

sudo systemctl disable --now cpupower-performance.service
sudo rm /etc/systemd/system/cpupower-performance.service
sudo systemctl daemon-reload

Pronto: seu servidor agora fica configurado para usar schedutil automaticamente a cada boot.