Ir al contenido

cpupower - Control de frecuencia de CPU y gobernador

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

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

Inspeccionando el estado

ComandoMuestra
cpupower frequency-infoGobernador, frecuencia actual/mín/máx, controlador
cpupower -c all frequency-infoInformación para todos los núcleos
cpupower idle-infoC-states disponibles y uso
cpupower monitorResidencia 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

GobernadorComportamiento
performanceSiempre ejecuta a frecuencia máxima
powersavePrefiere frecuencia más baja (o mín de intel_pstate)
ondemandEscala hacia arriba rápidamente bajo carga
conservativeEscala hacia arriba gradualmente
schedutilEscalado impulsado por el programador (predeterminado moderno)
userspaceFrecuencia 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

ComandoEfecto
sudo cpupower frequency-set -g performanceEstablece gobernador
sudo cpupower frequency-set -d 2.0GHzEstablece frecuencia mínima
sudo cpupower frequency-set -u 3.5GHzEstablece frecuencia máxima
sudo cpupower frequency-set -f 3.0GHzFija una frecuencia (gov de espacio de usuario)
sudo cpupower -c 0-3 frequency-set -g powersaveGobernador 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.

ComandoEfecto
cpupower idle-infoLista C-states y residencia
sudo cpupower idle-set -d 3Deshabilita un C-state específico
sudo cpupower idle-set -e 3Habilita un C-state
sudo cpupower idle-set -D 10Deshabilita 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étodoCómo
Servicio de systemdsystemctl enable cpupower con /etc/default/cpupower
/etc/default/cpupowerEstablece GOVERNOR="performance"
TuneDDeja que tuned gestione el gobernador a través de un perfil
rc.local / unidadEjecuta 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

HerramientaRol
cpupowerControl de frecuencia/gobernador de CPU + estado inactivo
tunedPerfiles de todo el sistema (establece gobernador + más)
numactlEnlace de CPU/memoria NUMA
tasksetAfinidad de CPU para un proceso
turbostatTelemetrí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