BULMA

Bulma se une a la protesta contra SOPA y PIPA

Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(19/06/2013 18:34:19)
    
Google


En bulma.net
En internet
cpudyn: controlar la velocidad de la CPU automáticamente (58602 lectures)
Por Ricardo Galli Granada
gallir (http://mnm.uib.es/gallir/)
Creado el 01/05/2003 16:49 modificado el 16/07/2003 22:51

El cpudyn es un daemon que controla dinámicamente la frecuencia del procesador dependiendo de la carga. El objetivo al desarrollarlo fue tener un programa sencillo que pudiese ser usado siempre (con o sin baterías) en un portátil para bajar el consumo y la temperatura de la CPU, pero afectando lo mínimo posible al rendimiento, especialmente al interactivo.
Actualización: Liberada versión 0.4.0, ya funciona con la interfaz estándar (y nueva) cpufreq del 2.6.0-test1.

Pagina1/4

cpudyn: controlar la velocidad de la CPU automáticamente

Página del proyecto
Página en Freshmeat

El cpudyn es un daemon que controla dinámicamente la frecuencia del procesador dependiendo de la carga. El objetivo al desarrollarlo fue tener un programa sencillo que pudiese ser usado siempre (con o sin baterías) en un portátil para bajar el consumo y la temepratura de la CPU, pero afectando lo mínimo posible al rendimiento, especialmente al interactivo.

La mayoría de los portátiles actuales ya tienen control de la velocidad de CPU. La tecnología más conocida y usada es la Speedstep de Intel que tiene dos frecuencias de trabajo. El kernel 2.5 ya tiene incluido el cpufreq, que permite el control de frecuencias de los procesadores, y existe un parche para el 2.4, la versión de Alan Cox 2.4.21-rc1-ac ya lo tiene incluido.

Pero para controlar la velocidad de la CPU hace falta user un programa o "daemon", y existen varios, desde el cpufreq.cc comentado por Switch, o el cpufreqd. Ambos tienen varias características buenas (y algunos fallos también), y el cpufreqd es completísimo, pero no hacía lo que yo pretendía, que sea simple, pequeño y que haga sólo una cosa:

Subir la velocidad de la CPU cuando hace falta, y bajarla cuando ya no lo haga. Además que reaccione rápidamente al uso de programas interactivos.

Con ésto ahorraríamos energía, vida de procesador y temperatura, sin afectar al rendimiento interactivo, sobre todo interactivo, del ordenador. Además quería que se comportase igual estuviese o no funcionando con baterías. ¿Porqué hemos de sacrificar velocidad cuando estamos con baterías? ¿Porqué no ponerla al máximo sólo cuando la necesitamos y ahorrar batería cuando no lo necesitemops? (además que lo que más consume en un portatil actual es la pantalla TFT, no el procesador).

El cpudyn

El objetivo era poder tenerlo siempre funcionando en mi portátil, y que molestará lo menos posible, es decir, que me diese la sensación que siempre voy a máxima velocidad, con o sin baterías. Como estaba ya cansado de buscar y no encontraba nada adecuado (¡simple y que haga sólo eso, pero bien!) me puse a desarrollarlo, el resultado es el cpudyn. Está basado en el cpufreq.cc pero simplificado al eliminar las cosas que no hacían falta (entre otras cosas el uso de características no compatibles con C99), y también enormemente modificado en aquellas partes que afectan directamente al rendimiento del programa o su capacidad de detectar un consumo más elevado de CPU.

Requerimientos

El programa necesite que el cpufreq del kernel esté compilado y en marcha, es decir debe existir el fichero /proc/cpufreq. Lo he probado sobre procesadores Speedstep y PowerPC (iBook). En ambos funcionan perfectamente, aunque he notado que se producen pequeños bloqueos en el caso del iBook (yo tengo el modelo más antiguo), eso es un fallo del driver del kernel para ese procesador, o un problema de hardware. Ya lo investigaré, agradeceré que me digáis como funcionan en otro modelos de Apple.

Instalación

Simplemente hay que bajarse el cpudyn.tgz, extraer los ficheros y hacer un

  make install

El make install instala el daemon en /usr/sbin y también un script de arranque en /etc/init.d/. Ahora basta con hacer:

  /etc/init.d/cpudyn start

Si queréis que se arranque al inicio del sistema deberéis agregar los enlaces correspondientes. Para el caso de Debian ya lo podéis hacer automáticamente:

  make install-debian

Por supuesto, si no os gusta como funciona, podeís hacer el make unistall o make unistall-debian :-)

Configuración

Los parámetros por defecto que tiene (que lo podéis ver en el script cpudyn o en el "usage" del programa) ya deberían funcionar correctamente, pero los podéis modificar. Hay tres parámetros básicos:
  • -i N (N es un número entero) define el periodo de ejecución del daemon en décimas de segundo.
  • -p UP DOWN (UP y DOWN son flotantes entre 0.0 y 1.0). UP define la relación "libre:ocupado" para subir la frecuencia del procesador (o pasar a modo "performance"), por ejemplo 0.5 indica que si en el último período de control la CPU estuve un 50% del tiempo libre, hay que subir la frecuencia. DOWN define la misma relación pero para bajar la frecuencia (o pasar a modo "powersave"), 0.95 indica que hay que bajar la frecuencia si la CPU estuvo libre el 95% del tiempo.
  • -d Indica que el cpusysd debe ejecutarse en modo daemon.

Verificar el funcionamiento

Para verificar que esté funcionando podéis dejar el ordenador en reposo unos segundos y si hacéis un cat /proc/cpufreq deberéis ver como está en modo powersave.

gallir@minime:~$ cat /proc/cpufreq
          minimum CPU frequency  -  maximum CPU frequency  -  policy
CPU  0       399000 kHz ( 42 %)  -     931000 kHz (100 %)  -  powersave

Si hacéis que el procesador esté ocupado, por ejemplo compilando un programa (o ejecutando yes > /dev/null) , tendréis que ver como pasa a modo performance inmediatamente:

gallir@minime:~$ cat /proc/cpufreq
          minimum CPU frequency  -  maximum CPU frequency  -  policy
CPU  0       399000 kHz ( 42 %)  -     931000 kHz (100 %)  -  performance

Además, si hacéis un cat /proc/cpuinfo tendréis que ver como los MHz y bogomips también se actualizan con el estado actual de la CPU.

Debug

Si queréis ver como hace esas cosas en "tiempo real", modificad el cpudynd.h quitando el comentario de la definición de DEBUG, recompiladlo y luego ejecutado desde la consola sin el parámetro -d. El programa imprimirá un mensaje por la salida estándard de error cada vez que cambie de estado o que actúe el "decay" (ver a continuación).


Paginas:  1  2  3  4  Abreviatura Siguiente>>

Imprimir
Version para
imprimir

Imprimir
Version
PDF
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 76
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Laptop mode per retrasar esciptures al disc
. cpudyn, SuSE and Pentium 4 Mobile
. Escalado de frecuencia de procesadores Mobile (Speedstep y Power Now!) en Linux
. Extend the battery life of your (iBook) laptop
. Ahorrar energía del portátil (iBook)
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 28/2/2008 15:18:38 | Tiempo Total: 0.017 segs | Kernel: Linux - i686 - 2.6.26-2-686 | Last boot: too much time ago!!
Powered by Apache    MySQL    PHP    Gimp