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
| Plataforma | Comando |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| Verify | cpupower --version |
Inspecionando Estado
| Comando | Mostra |
|---|
cpupower frequency-info | Governador, freq atual/min/max, driver |
cpupower -c all frequency-info | Info para todos os núcleos |
cpupower idle-info | C-states disponíveis e uso |
cpupower monitor | Residê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
| Governador | Comportamento |
|---|
performance | Sempre execute na frequência máxima |
powersave | Prefira frequência mais baixa (ou intel_pstate min) |
ondemand | Aumente rapidamente sob carga |
conservative | Aumente gradualmente |
schedutil | Dimensionamento orientado por scheduler (padrão moderno) |
userspace | Frequê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
| Comando | Efeito |
|---|
sudo cpupower frequency-set -g performance | Defina governador |
sudo cpupower frequency-set -d 2.0GHz | Defina frequência mínima |
sudo cpupower frequency-set -u 3.5GHz | Defina frequência máxima |
sudo cpupower frequency-set -f 3.0GHz | Fixe uma frequência (gov do espaço do usuário) |
sudo cpupower -c 0-3 frequency-set -g powersave | Governador 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.
| Comando | Efeito |
|---|
cpupower idle-info | Liste C-states e residência |
sudo cpupower idle-set -d 3 | Desabilite um C-state específico |
sudo cpupower idle-set -e 3 | Habilite um C-state |
sudo cpupower idle-set -D 10 | Desabilite 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étodo | Como |
|---|
| systemd service | systemctl enable cpupower com /etc/default/cpupower |
/etc/default/cpupower | Defina GOVERNOR="performance" |
| TuneD | Deixe tuned gerenciar o governador via perfil |
| rc.local / unit | Execute 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
| Ferramenta | Função |
|---|
| cpupower | Controle de frequência/governador de CPU + estado ocioso |
| tuned | Perfis de todo o sistema (defina governador + mais) |
| numactl | Ligação de CPU/memória NUMA |
taskset | Afinidade de CPU para um processo |
turbostat | Telemetria 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