Cpufrequtils, escalado para la frecuencia de tu CPU.
El escalado de CPU, lo que hace es poner a trabajar el procesador a una frecuencia reducida, siempre que no sea necesaria tanta potencia, ahorrando energÃa, baterÃa en caso de los portátiles, y por lo tanto también se calienta menos, y no hace falta que los ventiladores giren tan rápido, alargando algo la vida de nuestro CPU.
Antes de nada, decir que los comandos, y la ubicación de los archivos de configuración pueden variar ligeramente, dependiendo de que distro de Linux estemos usando. Pero si tenéis un poco de experiencia, no creo que os cueste seguir los pasos. Todos los comandos escritos aquÃ, son para Archlinux.
Vamos a empezar, comprobando que tenemos bien configurada la BIOS. En las opciones del CPU, tine que poner algo como “Cool’n'Quiet (AMD)” o “SpeedStep (Intel)”. Si es asà comprobaremos que están activadas. En algunos procesadores vienen activadas por defecto, y no tenemos opción para manipularlo.
También necesitamos el modulo adecuado, que controle nuestro procesador:
- AMD Sempron/Athlon/MP ( K7 ). El módulo a cargar se llama powernow-k7
- AMD Duron/Sempron/Athlon/Opteron 64/Turion ( K8 ). El módulo a cargar se llama powernow-k8
- Intel Dual core/Pentium M/Core 2 Duo/Quad core/Centrino. Para estos procesadores tenemos dos módulos diferentes: speedstep-centrino (deprecated) y el más actual acpi-cpufreq
- Intel Pentium 4. El módulo adecuado para esta familia de procesadores es el p4_clockmod
- Otros (Desconocido). Si tu procesador no funciona con ninguno de los módulos mostrados arriba, puedes intentar, aunque no se puede asegurar que funcione, el módulo acpi-cpufreq
Si no sabemos cual es nuestro CPU, podemos usar el comando:
cat /proc/cpuinfo
Ahora cargamos el modulo deseado con modprobe (en mi caso acpi-cpufreq, para un Dual Core):
sudo modprobe acpi-cpufreq
Para que se inicie siempre que arranquemos el equipo, tendremos que añadir el nombre del módulo al array de los modulos en el archivo “/etc/rc.conf”
Ahora, instalamos el paquete cpufrequtils. Lo encontrareis en los repositorios de vuestro distro, yo escribo el comando para Archlinux, que es el que uso:
yaourt -S cpufrequtils
Una vez instalado el programa, teclearemos el siguiente comando en la consola para obtener información sobre nuestro CPU:
cpufreq-info
A mà me arroja la siguiente información:
cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0
hardware limits: 1.20 GHz - 2.50 GHz
available frequency steps: 2.50 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz
available cpufreq governors: ondemand, performance
current policy: frequency should be within 1.20 GHz and 2.50 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.20 GHz.
cpufreq stats: 2.50 GHz:2,60%, 2.00 GHz:0,25%, 1.60 GHz:0,40%, 1.20 GHz:96,74%Â (11695)
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 1
hardware limits: 1.20 GHz - 2.50 GHz
available frequency steps: 2.50 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz
available cpufreq governors: ondemand, performance
current policy: frequency should be within 1.20 GHz and 2.50 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.20 GHz.
cpufreq stats: 2.50 GHz:3,08%, 2.00 GHz:0,26%, 1.60 GHz:0,41%, 1.20 GHz:96,25%Â (11021)
Más adelante explicaré como configurarlo para que nos de los datos estadÃsticos escritos en verde. Mi procesador es un Core2 duo a 2.5 Ghz, y como podéis ver, la mayor parte del tiempo trabaja a 1.2 Ghz.
Lo primero es elegir el “governor” que más nos convenga, aquà una pequeña explicación:
- Ondemand. Frecuencia de procesamiento basada en la carga. El módulo a cargar se llama cpufreq_ondemand
- Conservative. Este modo es parecido al gobernador ondemand, el procesador se configura de alguna manera dependiendo del uso. Difiere en que el comportamiento del conservative hace el escalado de manera mucho más gradual que ondemand que realiza saltos a la máxima velocidad en el momento en que un proceso lo requiera.El módulo a cargar se llama cpufreq_conservative.
- Performance. La CPU funciona solamente en la frecuencia máxima sin importar carga. Este gobernador se encuentra implÃcito al cargar un módulo de control del procesador.
- Powersave La CPU funciona solamente en la frecuencia mÃnima sin importar carga. El módulo a cargar es cpufreq_powersave
- Userspace Permite seleccionar al usuario a que frecuencia funcionara el procesador sin importar la carga. El nombre del módulo es cpufreq_userspace.
Y también nos tenemos que fijar, cuales son los lÃmites de nuestro CPU, que nos lo dice en la linea “hardware limits: 1.20 GHz – 2.50 GHz”. Teniendo todo esto claro, pasaremos a editar el archivo de configuración:
sudo gedit /etc/conf.d/cpufreq
Este es mi archivo, para que veáis como hay que rellenarlo:
#configuration for cpufreq control # valid governors: # ondemand, performance, powersave, # conservative, userspace governor="ondemand" # valid suffixes: Hz, kHz (default), MHz, GHz, THz min_freq="1.20GHz" max_freq="2.50GHz"
Las lineas en verde son las que tenemos que rellenar con los datos deseados. Y ahora lo único que nos queda, es arrancar el demonio con el comando:
sudo /etc/rc.d/cpufreq start
Si queremos que se inicie siempre al encender el equipo, lo agregaremos al array de Daemons, como estamos acostumbrados, en el archivo /etc/rc.conf.
Por último, si quereis que al hacer un cpufreq-info os salgan las estadÃsticas sobre el tiempo que pasa trabajando a cada frecuencia (os lo comentaba más arriba), necesistamos tener cargado el modulo cpufreq_stats. Lo cargamos con modprobe como hemos hecho antes, y también lo podemos agregar al rc.conf.
Para los usuarios de Gnome (de kde no se si habrá equivalente), se puede añadir un applet para ver la frecuencia del CPU, y cambiar el Gobernador con un solo click. Pulsamos con el botón derecho en nuestro panel, elegimos añadir al panel, y en el panel que nos aparece, seleccionamos monitor de frecuencia de la cpu . Si tenemos dos nucleos, tendremos que agregar 2 applets, y poner a cada uno monitorizando un núcleo (se elige pulsando botón derecho /preferencias).
Eso es todo. A quedado un poco largo, pero no es complicado, son solo un par de cosillas.
Fuentes:
http://archxz.wordpress.com/?s=cpufreq
http://www.esdebian.org/wiki/cpu-scaling-debian



Hola, lo he intentado pero no me funciona…
———————————————————————————–
# modprobe powernow-k8
FATAL: Error inserting powernow_k8 (/lib/modules/2.6.30-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko): No such device
———————————————————————————–
Creo haber usado el modulo adecuado ya q mi CPU AMD Athlon(tm) 64 X2 Dual Core Processor 5200+, además tengo activado en la BIOS la opción “Cool’n’Quiet”, intenté con los otros módulos q decÃs pero tampoco funciona. Saludos
Has ejecutado el comando como root, o con un sudo delante?
Saludos!!
Vale, está la almohadilla en tu mensaje,no me habÃa fijado, asà que parece que eso no es
Si, lo ejecuté como root, y uso la versión para 64 bits de Archlinux, no si puede tener q ver con eso…
MuchÃsimas gracias por el dato.
Hace unos meses conocà a otra aplicación bastante útil tambien para el ahorro de energÃa en las portátiles que puede interesaste, aunque probablemente ya la conozcas.
http://cyb3rpunk.wordpress.com/2009/06/17/powertop/
@ikanovo
No, yo uso también la versión de 64 bits. He copiado el error que te dice la consola en google, y hay más gente a la que le pasa, pero no se aclara por qué.
@Ramón
No la conocÃa. Yo no tengo portatil, asà que no me preocupo mucho de este tema. Le echaré un ojo como curiosidad.
Saludos!!
Y por fin me puedo pasar por acá! [Maldito tiempo xD]
Pues nada… muy buena la guÃa tepes! En verdad logré entender más o menos el funcionamiento de cpufreq.
Pregunto, alguna velocidad del procesador que recomiendes? o alguna que sea buena para un rendimiento óptimo?
Yo también le echaré un ojo a powertop que parece será útil para mi portátil
Saludos y grax de nuevo por la guÃa!
P.D. Recurro a tus conocimientos… de casualidad no sabes qué es lo que sucede al suspender o hibernar un equipo? ya que tengo un problema con los ventiladores de mi portátil que únicamente encienden si primero suspendo el sistema y después lo reanudo
.
Alguna sugerencia/ayuda de cómo simular o realizar esa “reanudación” viva? o sea sin suspender el equipo primero?
Disculpa las molestias.
@Gómez Hyuuga
Ni idea
. Yo no he tenido un portatil en la vida, asà que no me preocupo mucho de esos temas, pero suena raro ese problemilla. Igual podrÃas mirar la configuración en la Bios de los ventiladores, o usar algún programas como lm-sensors + fancontrol. Pero yo ni idea, ya lo siento.
En cuanto a los procesadores, yo lo tengo en “Ondemand”. Se pasa casi todo el tiempo a la mÃnima frecuencia (1.2), y no noto perdida de rendimiento. Gracias por pasarte!
Saludos!!