cpupower - Control de frecuencia de CPU y gobernador
cpupower inspecciona y controla los subsistemas de escalado de frecuencia de CPU (cpufreq) e estado inactivo (cpuidle) del kernel de Linux. Muestra a qué velocidad se está ejecutando cada núcleo, te permite cambiar el gobernador de escalado (por ejemplo, performance para velocidad máxima, powersave para eficiencia), fijar o limitar frecuencias e inspeccionar/deshabilitar C-states profundos que agregan latencia de vigilia. Es la herramienta estándar para exprimir rendimiento predecible de una máquina o ahorrar energía en una laptop.
Instalación
| Plataforma | Comando |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| Verificar | cpupower --version |
Inspeccionando el estado
| Comando | Muestra |
|---|
cpupower frequency-info | Gobernador, frecuencia actual/mín/máx, controlador |
cpupower -c all frequency-info | Información para todos los núcleos |
cpupower idle-info | C-states disponibles y uso |
cpupower monitor | Residencia de frecuencia/inactividad en vivo por núcleo |
watch -n1 'cpupower -c all frequency-info -f' | Frecuencias en vivo |
# Vistazo rápido del gobernador y velocidad actual
cpupower frequency-info
Gobernadores
| Gobernador | Comportamiento |
|---|
performance | Siempre ejecuta a frecuencia máxima |
powersave | Prefiere frecuencia más baja (o mín de intel_pstate) |
ondemand | Escala hacia arriba rápidamente bajo carga |
conservative | Escala hacia arriba gradualmente |
schedutil | Escalado impulsado por el programador (predeterminado moderno) |
userspace | Frecuencia establecida manualmente |
# Ver gobernadores disponibles
cpupower frequency-info -g
# Establece el gobernador de rendimiento en todos los núcleos
sudo cpupower frequency-set -g performance
Estableciendo la frecuencia
| Comando | Efecto |
|---|
sudo cpupower frequency-set -g performance | Establece gobernador |
sudo cpupower frequency-set -d 2.0GHz | Establece frecuencia mínima |
sudo cpupower frequency-set -u 3.5GHz | Establece frecuencia máxima |
sudo cpupower frequency-set -f 3.0GHz | Fija una frecuencia (gov de espacio de usuario) |
sudo cpupower -c 0-3 frequency-set -g powersave | Gobernador por núcleo |
Estados inactivos (C-states)
Los C-states profundos ahorran potencia pero agregan latencia de vigilia — un problema para cargas de trabajo sensibles a latencia.
| Comando | Efecto |
|---|
cpupower idle-info | Lista C-states y residencia |
sudo cpupower idle-set -d 3 | Deshabilita un C-state específico |
sudo cpupower idle-set -e 3 | Habilita un C-state |
sudo cpupower idle-set -D 10 | Deshabilita C-states con latencia > 10µs |
# Crítico para latencia: deshabilita estados inactivos profundos para vigilias consistentes
sudo cpupower idle-set -D 5
Monitoreo bajo carga
# Ve cómo responden la frecuencia y la residencia inactiva a una carga de trabajo
cpupower monitor -i 1
Muestra frecuencia por núcleo y tiempo gastado en cada C-state — útil para confirmar que un cambio de gobernador realmente tomó efecto.
Haciendo que los cambios persistan
cpupower frequency-set no persiste entre reinicios. Opciones:
| Método | Cómo |
|---|
| Servicio de systemd | systemctl enable cpupower con /etc/default/cpupower |
/etc/default/cpupower | Establece GOVERNOR="performance" |
| TuneD | Deja que tuned gestione el gobernador a través de un perfil |
| rc.local / unidad | Ejecuta el comando frequency-set en el arranque |
Flujos de trabajo comunes
# Caja de referencia: bloquea el rendimiento para números reproducibles
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all # verifica
# Laptop: ahorra batería
sudo cpupower frequency-set -g powersave
# Sintonización de latencia: gobernador de rendimiento + inactividad superficial
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5
cpupower vs herramientas relacionadas
| Herramienta | Rol |
|---|
| cpupower | Control de frecuencia/gobernador de CPU + estado inactivo |
| tuned | Perfiles de todo el sistema (establece gobernador + más) |
| numactl | Enlace de CPU/memoria NUMA |
taskset | Afinidad de CPU para un proceso |
turbostat | Telemetría detallada de freq/potencia por núcleo |
Para un enfoque coherente de todo el sistema, deja que tuned gestione gobernadores; usa cpupower para control directo e inspección por núcleo.
Recursos