Difference between revisions of "CPU frequency scaling (Español)"

From ArchWiki
Jump to: navigation, search
(Modo demonio)
 
(30 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
[[Category:Power management (Español)]]
 
[[Category:Power management (Español)]]
 
[[Category:CPU (Español)]]
 
[[Category:CPU (Español)]]
[[ar:CPU Frequency Scaling]]
+
[[ar:CPU frequency scaling]]
[[cs:CPU Frequency Scaling]]
+
[[cs:CPU frequency scaling]]
 
[[de:Cpufrequtils]]
 
[[de:Cpufrequtils]]
[[el:CPU Frequency Scaling]]
+
[[el:CPU frequency scaling]]
[[en:CPU Frequency Scaling]]
+
[[en:CPU frequency scaling]]
 
[[fr:Cpufreq]]
 
[[fr:Cpufreq]]
[[it:CPU Frequency Scaling]]
+
[[it:CPU frequency scaling]]
[[pt:CPU Frequency Scaling]]
+
[[ja:CPU 周波数スケーリング]]
[[ru:CPU Frequency Scaling]]
+
[[pt:CPU frequency scaling]]
[[sk:CPU Frequency Scaling]]
+
[[ru:CPU frequency scaling]]
[[tr:Işlemci_frekansını_ölçekleme]]
+
[[sk:CPU frequency scaling]]
[[zh-CN:CPU Frequency Scaling]]
+
[[zh-hans:CPU frequency scaling]]
== Resumen ==
+
{{Related articles start (Español)}}
{{Pkg|cpufrequtils}} es un conjunto de utilidades diseñadas para ayudar al ajuste de frecuencias de la UCP, una tecnología usada principalmente en portátiles que permite al sistema operativo el ajuste de la velocidad hacia arriba o hacia abajo, dependiendo de la carga actual del sistema o del esquema de potencia. Por poner un ejemplo, el ajuste de frecuencia de la UCP puede reducir un procesador de 2 GHz a uno de 1 GHz cuando el portátil funciona con la batería, conservando la duración de ésta, reduciendo el calor generado y reduciendo el ruido del ventilador.
+
{{Related|Power saving}}
 +
{{Related|Laptop Mode Tools}}
 +
{{Related|PHC}}
 +
{{Related articles end}}
 +
{{Translateme (Español)|desactualizada}}
  
Cuando es usado en conjunción com [[pm-utils]], los propietarios de portátiles están provistos de un conjunto completo de programas para la gestión de la potencia.
+
== Herramientas del espacio de usuario ==
  
== Instalación ==
+
=== thermald ===
El paquete {{Pkg|cpufrequtils}} está disponible en los [[Official Repositories (Español)|repositorios oficiales]].
+
 
 +
{{Pkg|thermald}} es un demonio de Linux que previene el sobrecalentamiento del ordenador; controla y equilibra la temperatura utilizando los métodos de refrigeración disponibles en la máquina.
 +
 
 +
De manera predeterminada, monitorea la temperatura la UCP usando los sensores de temperatura digitales disponibles en la misma, y mantiene la temperatura de la UCP bajo control antes que la máquina tome una medida correctiva que resulte agresiva.
 +
 
 +
=== cpupower ===
 +
 
 +
{{Pkg|cpupower}} es un conjunto de utilidades diseñadas para ajustar la frecuencias de la UCP (tecnología usada principalmente en portátiles) y permite al sistema operativo el ajuste de la velocidad hacia arriba o hacia abajo, dependiendo de la carga actual del sistema o del esquema de potencia, p. ej. la frecuencia de la UCP puede ser reducida de 2 GHz a 1 GHz cuando el portátil funciona con la batería, conservando la duración de ésta, reduciendo el calor generado y el ruido del ventilador.
 +
 
 +
El fichero de configuración de ''cpupower'' se encuentra alojada en {{ic|/etc/default/cpupower}}. Este fichero de configuración es leído por un script bash alojado en {{ic|/usr/lib/systemd/scripts/cpupower}} y es activado con ''systemd'' a través del servicio {{ic|cpupower.service}}. Si desea habilitarlo para que inicie al arrancar el sistema operativo, puede ejecutar la orden:
 +
 
 +
# systemctl start cpupower && systemctl enable cpupower
  
 
== Configuración ==
 
== Configuración ==
Line 39: Line 54:
  
 
Una vez cargado el controlador cpufreq apropiado, se puede visualizar la información detallada acerca de la UCP ejecutando:  
 
Una vez cargado el controlador cpufreq apropiado, se puede visualizar la información detallada acerca de la UCP ejecutando:  
  $ cpufreq-info
+
  $ cpupower frequency-info
  
Ejemplo de salida de {{ic|cpufreq-info}} (en un Intel Duo Core T2500):
+
Ejemplo de salida de {{ic|frequency-info}} (en un Intel Duo Core T4300):
analyzing CPU 0:
+
  analyzing CPU 0:
  driver: acpi-cpufreq
 
  CPUs which need to switch frequency at the same time: 0 1
 
  hardware limits: 1000 MHz - 2.00 GHz
 
  available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
 
  available cpufreq governors: ondemand, performance
 
  current policy: frequency should be within 1000 MHz and 2.00 GHz.
 
                  The governor "performance" may decide which speed to use
 
                  within this range.
 
  current CPU frequency is 2.00 GHz.
 
analyzing CPU 1:
 
 
   driver: acpi-cpufreq
 
   driver: acpi-cpufreq
   CPUs which need to switch frequency at the same time: 0 1
+
  CPUs which run at the same hardware frequency: 0
   hardware limits: 1000 MHz - 2.00 GHz
+
   CPUs which need to have their frequency coordinated by software: 0
   available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
+
  maximum transition latency: 10.0 us
   available cpufreq governors: ondemand, performance
+
   hardware limits: 1.20 GHz - 2.10 GHz
   current policy: frequency should be within 1000 MHz and 2.00 GHz.
+
   available frequency steps: 2.10 GHz, 1.60 GHz, 1.20 GHz
                   The governor "performance" may decide which speed to use
+
   available cpufreq governors: performance schedutil
 +
   current policy: frequency should be within 1.20 GHz and 2.10 GHz.
 +
                   The governor "schedutil" may decide which speed to use
 
                   within this range.
 
                   within this range.
   current CPU frequency is 2.00 GHz.
+
   current CPU frequency: 2.10 GHz (asserted by call to hardware)
 +
  boost state support:
 +
    Supported: no
 +
    Active: no
  
 
=== Reguladores de ajuste (Esquemas de potencia de la UCP) ===
 
=== Reguladores de ajuste (Esquemas de potencia de la UCP) ===
Line 67: Line 77:
  
 
Reguladores disponibles:
 
Reguladores disponibles:
;performance '''(por defecto)''': El regulador de rendimiento esta empotrado en el núcleo y hace que las UCP funcionen a la máxima velocidad de reloj
+
;Schedutil ''(Por defecto, ha estado incorporado desde el kernel 4.7 al día de hoy)'': Ya que aprovecha los datos de utilización del planificador del núcleo en un intento de tomar mejores decisiones sobre el ajuste del estado de frecuencia / rendimiento del CPU.
;cpufreq_ondemand ''(recomendado)'': Incrementa/Decrementa dinámicamente la velocidad de reloj de la UCP en base a la carga del sistema
+
;Performance: El regulador de rendimiento esta empotrado en el núcleo y hace que las UCP funcionen a la máxima velocidad de reloj.
;cpufreq_conservative: Similar a ondemand, pero más conservador (los cambios de velocidad son más suaves)
+
;Ondemand ''(recomendado para AMD)'': Incrementa/Decrementa dinámicamente la velocidad de reloj de la UCP en base a la carga del sistema.
;cpufreq_powersave: Hacer funcionar la UPC a la velocidad mínima
+
;Conservative: Similar a ondemand, pero más conservador (los cambios de velocidad son más suaves)
;cpufreq_userspace: Velocidades de reloj configuradas manualmente por el usuario
+
;Powersave: Hacer funcionar la UPC a la velocidad mínima.
 +
;Userspace: Velocidades de reloj configuradas manualmente por el usuario.
 +
 
 +
Alternativamente, puede establecer el regulador manualmente ejecutando (como root) la orden {{ic|cpupower frequency-set}}, pero esto no se conservará después de un rearranque/apagado. Por ejemplo:
  
Añada el regulador (o reguladores) al array {{ic|MODULES}} en {{ic|/etc/rc.conf}}:
+
  # cpupower frequency-set -r -g powersave
  MODULES=(acpi-cpufreq '''''cpufreq_ondemand cpufreq_powersave''''' vboxdrv fuse fglrx iwl3945 ... )
 
  
Alternativamente, puede establecer el regulador manualmente ejecutando (como root) la orden {{ic|cpufreq-set}}, pero esto no se conservará después de un rearranque/apagado. Por ejemplo:
+
Ejecute '''{{ic|cpupower frequency-set--help}}''' o '''{{ic|man cpupower frequency-set}}''' para más información.
  
# cpufreq-set -g ondemand
+
;También puede usar el siguiente script para modificar los esquemas de '''{{ic|cpupower frequency-set}}''' ejemplo:
  
Ejecute '''{{ic|cpufreq-set --help}}''' o '''{{ic|man cpufreq-set}}''' para más información.
+
##!/bin/bash
 +
clear
 +
echo " *** SCRIPT CPU-FREQ SCALING  *** "
 +
echo " SELECCIONA UNA OPCIÓN. "
 +
echo " 0.-Frecuencia actual del procesador"
 +
echo " 1.-Powersave"
 +
echo " 2.-Schedutil"
 +
echo " 3.-Ondemand----(Recomendado para AMD)"
 +
echo " 4.-Performance"
 +
echo " 5.-Conservative"
 +
echo " 6.-Userspace----(Asigna una frecuencia de forma manual)"
 +
echo " 7.-¿Qué frecuencia tengo?"
 +
echo " 8.-CPU frequency-info---(Ver frecuencias a las que se puede alcanzar"
 +
echo "****************************************"
 +
echo " 9.-Cambiar de forma permanente governor"
 +
echo "*****************************************"
 +
echo " 10.-Salir"
 +
echo ""
 +
read -p "OPCIÓN: " OPCIÓN
 +
case $OPCION in
 +
0) watch grep \"cpu MHz\" /proc/cpuinfo;;
 +
1) sudo cpupower frequency-set  -r -g powersave;;
 +
2) sudo cpupower frequency-set  -r -g schedutil;;
 +
3) sudo cpupower frequency-set  -r -g ondemand;;
 +
4) sudo cpupower frequency-set -r -g performance;;
 +
5) sudo cpupower frequency-ser  -r -g conservative;;
 +
6) echo -n " *** Ingresa de forma manual la frecuencia *** "
 +
read freq
 +
sudo cpupower frequency-set -f $freq;;
 +
7) echo "**** Frecuencia actual ****: "
 +
echo "****************************** "
 +
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ;;
 +
8) cpupower frequency-info ;;
 +
9) sudo nano /etc/default/cpupower ;;
 +
10) exit;;
 +
*) echo " OPCIÓN NO VÁLIDA "
 +
exit 1;;
 +
esac
  
 
=== Modo demonio ===
 
=== Modo demonio ===
{{ic|cpufrequtils}} instala también un demonio que le permitirá establecer el regulador de juste deseado y velocidades de reloj maximas/mínimas en tiempo de arranque, sin necesidad de herramienta adicional alguna tal como kpowersave.  Esta es una solución perfecta para aquellos que utilizan un escritorio ligero tal como Openbox.
+
{{ic|cpupower}} instala también un demonio que le permitirá establecer el regulador de juste deseado y velocidades de reloj maximas/mínimas en tiempo de arranque, sin necesidad de herramienta adicional alguna tal como kpowersave.  Esta es una solución perfecta para aquellos que utilizan un escritorio ligero tal como Openbox.
  
Antes de arrancar el demonio, edite {{ic|/etc/conf.d/cpufreq}} como root, seleccionando el regulador deseado y estableciendo las velocidades de reloj mínima y máxima para sus UPC, por ejemplo:
+
Antes de arrancar el demonio, edite {{ic|/etc/default/cpupower}} como root, seleccionando el regulador deseado y estableciendo las velocidades de reloj mínima y máxima para sus UPC, por ejemplo:
  
 
  #configuración para el control de cpufreq
 
  #configuración para el control de cpufreq
Line 97: Line 146:
 
  max_freq="2GHz"
 
  max_freq="2GHz"
  
{{Nota|Los valores de la velocidad de reloj mínimo y máximo para sus UPC pueden ser leídos ejecutando {{ic|cpufreq-info}} después de cargar el controlador de la CPU como se vió anteriormente (p.ej. {{ic|modprobe acpi-cpufreq}}). Estos valores son opcionales, no obstante. Usted podría omitirlos completamente borrando o comentando las líneas min/max_freq. Todo funcionará automáticamente.}}
+
{{Nota|Los valores de la velocidad de reloj mínimo y máximo para sus UPC pueden ser leídos ejecutando {{ic|cpupower frequency-info}} después de cargar el controlador de la CPU como se vió anteriormente (p.ej. {{ic|modprobe acpi-cpufreq}}). Estos valores son opcionales, no obstante. Usted podría omitirlos completamente borrando o comentando las líneas min/max_freq. Todo funcionará automáticamente.}}
  
 
Habiéndose ocupado del archivo de configuración, puede usted ahora arrancar el demonio mediante la siguiente orden:
 
Habiéndose ocupado del archivo de configuración, puede usted ahora arrancar el demonio mediante la siguiente orden:
Line 106: Line 155:
  
 
== Otros recursos ==
 
== Otros recursos ==
[[CPU_Frequency_Scaling]] - Más información útil para los usuarios de entornos de escritorio (Entrada de Arch Wiki)<br>
+
[[CPU frequency scaling]] - Más información útil para los usuarios de entornos de escritorio (Entrada de Arch Wiki)
[[pm-utils]] - Utilería Hibernate/Suspend proporcionada por la comunidad de OpenSUSE (Entrada de Arch Wiki)
 

Latest revision as of 03:09, 16 January 2018

Tango-preferences-desktop-locale.pngEste artículo o sección necesita ser traducido.Tango-preferences-desktop-locale.png

Notas: desactualizada (Discusión)

Herramientas del espacio de usuario

thermald

thermald es un demonio de Linux que previene el sobrecalentamiento del ordenador; controla y equilibra la temperatura utilizando los métodos de refrigeración disponibles en la máquina.

De manera predeterminada, monitorea la temperatura la UCP usando los sensores de temperatura digitales disponibles en la misma, y mantiene la temperatura de la UCP bajo control antes que la máquina tome una medida correctiva que resulte agresiva.

cpupower

cpupower es un conjunto de utilidades diseñadas para ajustar la frecuencias de la UCP (tecnología usada principalmente en portátiles) y permite al sistema operativo el ajuste de la velocidad hacia arriba o hacia abajo, dependiendo de la carga actual del sistema o del esquema de potencia, p. ej. la frecuencia de la UCP puede ser reducida de 2 GHz a 1 GHz cuando el portátil funciona con la batería, conservando la duración de ésta, reduciendo el calor generado y el ruido del ventilador.

El fichero de configuración de cpupower se encuentra alojada en /etc/default/cpupower. Este fichero de configuración es leído por un script bash alojado en /usr/lib/systemd/scripts/cpupower y es activado con systemd a través del servicio cpupower.service. Si desea habilitarlo para que inicie al arrancar el sistema operativo, puede ejecutar la orden:

# systemctl start cpupower && systemctl enable cpupower

Configuración

La configuración del ajuste de la UPC es un proceso de 3 partes:

  1. Cargar el controlador de frecuencia de la UPC apropiado
  2. Cargar el regulador (o reguladores) de ajuste deseado
  3. Configurar y cargar el demonio de ajuste de frecuencia (opcional)

Controlador de frecuencia de la UCP

Para lograr que el ajuste de frecuencia funcione adecuadamente, el sistema operativo debe conocer en primer lugar los límites de su UCP (o unidades si tiene varias). Para hacer esto, cargamos un controlador del núcleo que pueda leer y gestionar las especificaciones de todas sus UPC.

La mayoría de los portátiles y sobremesas modernos pueden simplemente utilizar el controlador acpi-cpufreq; otras opciones incluyen sin embargo, los controladores, p4-clockmod, powernow-k6, powernow-k7, powernow-k8, y speedstep-centrino.

Para cargar manualmente el controlador de frecuencia de la UPC:

# modprobe acpi-cpufreq

Para cargar automáticamente en el arranque, añada el controlador apropiado al array MODULES del archivo /etc/rc.conf. Por ejemplo:

MODULES=( acpi-cpufreq vboxdrv fuse fglrx iwl3945 ... )

Una vez cargado el controlador cpufreq apropiado, se puede visualizar la información detallada acerca de la UCP ejecutando:

$ cpupower frequency-info

Ejemplo de salida de frequency-info (en un Intel Duo Core T4300):

 analyzing CPU 0:
 driver: acpi-cpufreq
 CPUs which run at the same hardware frequency: 0
 CPUs which need to have their frequency coordinated by software: 0
 maximum transition latency: 10.0 us
 hardware limits: 1.20 GHz - 2.10 GHz
 available frequency steps:  2.10 GHz, 1.60 GHz, 1.20 GHz
 available cpufreq governors: performance schedutil
 current policy: frequency should be within 1.20 GHz and 2.10 GHz.
                 The governor "schedutil" may decide which speed to use
                 within this range.
 current CPU frequency: 2.10 GHz (asserted by call to hardware)
 boost state support:
   Supported: no
   Active: no

Reguladores de ajuste (Esquemas de potencia de la UCP)

Se puede considerar a los reguladores como esquemas de potencia de la UCP preconfigurados. Para que los programas tales como kpowersave o gnome-power-manager puedan captarlos, estos reguladores deben ser cargados como módulos del núcleo. Usted puede cargar tantos reguladores como desee, pero solamenete uno de ellos estará activo en un momento dado.

Reguladores disponibles:

Schedutil (Por defecto, ha estado incorporado desde el kernel 4.7 al día de hoy)
Ya que aprovecha los datos de utilización del planificador del núcleo en un intento de tomar mejores decisiones sobre el ajuste del estado de frecuencia / rendimiento del CPU.
Performance
El regulador de rendimiento esta empotrado en el núcleo y hace que las UCP funcionen a la máxima velocidad de reloj.
Ondemand (recomendado para AMD)
Incrementa/Decrementa dinámicamente la velocidad de reloj de la UCP en base a la carga del sistema.
Conservative
Similar a ondemand, pero más conservador (los cambios de velocidad son más suaves)
Powersave
Hacer funcionar la UPC a la velocidad mínima.
Userspace
Velocidades de reloj configuradas manualmente por el usuario.

Alternativamente, puede establecer el regulador manualmente ejecutando (como root) la orden cpupower frequency-set, pero esto no se conservará después de un rearranque/apagado. Por ejemplo:

# cpupower frequency-set -r -g powersave

Ejecute cpupower frequency-set--help o man cpupower frequency-set para más información.

También puede usar el siguiente script para modificar los esquemas de cpupower frequency-set ejemplo
##!/bin/bash
clear
echo " *** SCRIPT CPU-FREQ SCALING  *** "
echo " SELECCIONA UNA OPCIÓN. "
echo " 0.-Frecuencia actual del procesador"
echo " 1.-Powersave"
echo " 2.-Schedutil"
echo " 3.-Ondemand----(Recomendado para AMD)"
echo " 4.-Performance"
echo " 5.-Conservative"
echo " 6.-Userspace----(Asigna una frecuencia de forma manual)"
echo " 7.-¿Qué frecuencia tengo?"
echo " 8.-CPU frequency-info---(Ver frecuencias a las que se puede alcanzar"
echo "****************************************"
echo " 9.-Cambiar de forma permanente governor"
echo "*****************************************" 
echo " 10.-Salir"
echo ""
read -p "OPCIÓN: " OPCIÓN
case $OPCION in
0) watch grep \"cpu MHz\" /proc/cpuinfo;;
1) sudo cpupower frequency-set  -r -g powersave;;
2) sudo cpupower frequency-set  -r -g schedutil;;
3) sudo cpupower frequency-set  -r -g ondemand;;
4) sudo cpupower frequency-set  -r -g performance;;
5) sudo cpupower frequency-ser  -r -g conservative;;
6) echo -n " *** Ingresa de forma manual la frecuencia *** "
read freq
sudo cpupower frequency-set -f $freq;;
7) echo "**** Frecuencia actual ****: "
echo "****************************** "
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ;;
8) cpupower frequency-info ;;
9) sudo nano /etc/default/cpupower ;;
10) exit;;
*) echo " OPCIÓN NO VÁLIDA "
exit 1;;
esac

Modo demonio

cpupower instala también un demonio que le permitirá establecer el regulador de juste deseado y velocidades de reloj maximas/mínimas en tiempo de arranque, sin necesidad de herramienta adicional alguna tal como kpowersave. Esta es una solución perfecta para aquellos que utilizan un escritorio ligero tal como Openbox.

Antes de arrancar el demonio, edite /etc/default/cpupower como root, seleccionando el regulador deseado y estableciendo las velocidades de reloj mínima y máxima para sus UPC, por ejemplo:

#configuración para el control de cpufreq
# reguladores válidos:
#  ondemand, performance, powersave,
#  conservative, userspace
governor="ondemand"

# sufijos válidos: Hz, kHz (default), MHz, GHz, THz
min_freq="1GHz"
max_freq="2GHz"
Nota: Los valores de la velocidad de reloj mínimo y máximo para sus UPC pueden ser leídos ejecutando cpupower frequency-info después de cargar el controlador de la CPU como se vió anteriormente (p.ej. modprobe acpi-cpufreq). Estos valores son opcionales, no obstante. Usted podría omitirlos completamente borrando o comentando las líneas min/max_freq. Todo funcionará automáticamente.

Habiéndose ocupado del archivo de configuración, puede usted ahora arrancar el demonio mediante la siguiente orden:

# /etc/rc.d/cpufreq start

Para arrancar el demonio autómaticamente en el arranque, añada cpufreq al array DAEMONS en /etc/rc.conf, por ejemplo:

DAEMONS=(syslog-ng hal cpufreq network netfs @alsa @crond @cupsd @fam @ntpd @sshd)

Otros recursos

CPU frequency scaling - Más información útil para los usuarios de entornos de escritorio (Entrada de Arch Wiki)