Pular para o conteúdo

cpupower - Cheatsheet de Controle de Frequência de CPU e Governador

cpupower - Cheatsheet de Controle de Frequência de CPU e Governador

cpupower inspeciona e controla os subsistemas de dimensionamento de frequência de CPU (cpufreq) e estado ocioso (cpuidle) do kernel Linux. Mostra em que velocidade cada núcleo está executando, permite alternar o governador de dimensionamento (ex. performance para máxima velocidade, powersave para eficiência), frequências do pino ou ligadas e inspeciona/desabilita C-states profundos que adicionam latência de despertar. É a ferramenta padrão para obter desempenho previsível de uma máquina ou economizar energia em um laptop.

Instalação

PlataformaComando
Debian/Ubuntusudo apt install linux-cpupower
Fedora/RHELsudo dnf install kernel-tools
Arch Linuxsudo pacman -S cpupower
Verifycpupower --version

Inspecionando Estado

ComandoMostra
cpupower frequency-infoGovernador, freq atual/min/max, driver
cpupower -c all frequency-infoInfo para todos os núcleos
cpupower idle-infoC-states disponíveis e uso
cpupower monitorResidência de frequência/ocioso ao vivo por núcleo
watch -n1 'cpupower -c all frequency-info -f'Frequências ao vivo
# Quick look at the governor and current speed
cpupower frequency-info

Governadores

GovernadorComportamento
performanceSempre execute na frequência máxima
powersavePrefira frequência mais baixa (ou intel_pstate min)
ondemandAumente rapidamente sob carga
conservativeAumente gradualmente
schedutilDimensionamento orientado por scheduler (padrão moderno)
userspaceFrequência definida manualmente
# See available governors
cpupower frequency-info -g

# Set the performance governor on all cores
sudo cpupower frequency-set -g performance

Defina Frequência

ComandoEfeito
sudo cpupower frequency-set -g performanceDefina governador
sudo cpupower frequency-set -d 2.0GHzDefina frequência mínima
sudo cpupower frequency-set -u 3.5GHzDefina frequência máxima
sudo cpupower frequency-set -f 3.0GHzFixe uma frequência (gov do espaço do usuário)
sudo cpupower -c 0-3 frequency-set -g powersaveGovernador por núcleo

Estados Ociosos (C-states)

C-states profundos economizam energia mas adicionam latência de despertar — um problema para cargas de trabalho sensíveis à latência.

ComandoEfeito
cpupower idle-infoListe C-states e residência
sudo cpupower idle-set -d 3Desabilite um C-state específico
sudo cpupower idle-set -e 3Habilite um C-state
sudo cpupower idle-set -D 10Desabilite C-states com latência > 10µs
# Latency-critical: disable deep idle states for consistent wake-ups
sudo cpupower idle-set -D 5

Monitorando Sob Carga

# Watch how frequency and idle residency respond to a workload
cpupower monitor -i 1

Mostra frequência por núcleo e tempo gasto em cada C-state — útil para confirmar que uma mudança de governador realmente funcionou.

Tornando as Mudanças Persistentes

cpupower frequency-set não persiste em reinicializações. Opções:

MétodoComo
systemd servicesystemctl enable cpupower com /etc/default/cpupower
/etc/default/cpupowerDefina GOVERNOR="performance"
TuneDDeixe tuned gerenciar o governador via perfil
rc.local / unitExecute o comando frequency-set na inicialização

Fluxos de Trabalho Comuns

# Benchmark box: lock to performance for reproducible numbers
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all      # verify

# Laptop: save battery
sudo cpupower frequency-set -g powersave

# Latency tuning: performance governor + shallow idle
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5

cpupower vs Ferramentas Relacionadas

FerramentaFunção
cpupowerControle de frequência/governador de CPU + estado ocioso
tunedPerfis de todo o sistema (defina governador + mais)
numactlLigação de CPU/memória NUMA
tasksetAfinidade de CPU para um processo
turbostatTelemetria de freq/poder por núcleo detalhada

Para uma abordagem coerente de todo o sistema, deixe tuned gerenciar governadores; use cpupower para controle e inspeção diretos por núcleo.

Recursos