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



Últimos comentarios