Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Ahorro de energía en portátiles

MaX

Andaba a vueltas con el ahorro de energía y quería ver si podemos comentar entre todos que trucos usamos para reducir el gasto.

Ahí van los míos

  • Retrasar o evitar las escrituras en disco:
    • Cambiar syslog por metalog y eliminar todos los logs que no hagan falta
    • Opción noatime en /etc/fstab
    • Usar tmpfs para /tmp
    • Eliminar la swap si no la necesitamos
    • Evitar sistemas de ficheros con journaling como ext3 o reiserfs. Yo ando con ext2.
  • Apagar la pantalla cuando no se use con DPMS
  • Reducir la frecuencia del procesasdor (con cpudyn, cpufreq... a gusto del consumidor)
  • Usar laptop-mode de los núcleos 2.6 (requiere apmd o acpid en x86 y pmud o pbbuttonds en ppc). Y en /etc/laptop-mode/laptop-mode.conf
    • Activar read-ahead a unos 4mb para que lea más datos en una pasada, en vez de ir leyendo por partes.
    • Activar la suspension de discos duros cuando está tirando de batería (se hace con hdparm)

¿Qué más cosas modificais?

Añado enlaces para quien quiera ir probando todo esto:
Battery Powered Linux
Linux y portatiles

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
overpeer

Genial, asi entre todos a ver si conseguimos hacer rendir esto mas :D

No tengo Swap.

Opción noatime en /etc/fstab

Usar tmpfs para /tmp ??? Hum...

none /tmp tmpfs defaults 0 0

Seria 'asin'? :) ¿Que se consigue?

Yo controlo la frecuencia del procesador dinamicamente segun carga con speedfreq ademas controlo el brillo de la pantalla con los Toshiba-laptop-extras del kernel y lo ajusto (ademas de otras cosas) con FnFx.

FrAns me dejo en su dia un enlace de laptop-mode que no he tenido tiempo ( aun!!) de mirar.

La suspension a RAM y al HDD son dos asignaturas pendientes que me quedan :( Quizas alguien se podia tirar al rollo y enlazar algun buen HOWTO :)

Suspender el HDD parece que ser (en su dia que lo mire) que solo era posible con Ext3 ya que se podia controlar cada cuanto se escribia al HDD, yo por exigencias del hardware (el hdd es una puta mierda) uso ReiserFS.

Un saludo.

PD: "Usar laptop-mode de los núcleos 2.6 (requiere apmd o acpid en x86 y pmud o pbbuttonds en ppc). Y hacer en /etc/laptop-mode/laptop-mode.conf" --> Por donde anda eso en el kernel que no lo he visto?? (laptop-mod, acpi y apm se done andan :) )

🗨️ 1
MaX

Según tmpfs:
tmpfs /tmp tmpfs size=32m,mode=1777 0 0

Sirve para que las escrituras de /tmp se hagan en RAM en vez de en disco.

Tu speedfreq es lo mismo que mi cpudyn =)
El laptop-mode es bastante útil, aunque tengo que comprobar si está funcionando realmente todo lo que le he dicho xD

Se me olvidaba, así que lo añado también arriba: usar sistema de ficheros sin journaling ;) Que eso son escrituras constantes, así que en el portátil yo voy con ext2 como los campeones xD

Lo del laptop-mode con que tengas apmd o acpid creo que ya funciona.
¿La suspensión a RAM hay alguna forma "empírica" de comprobarlo?
Yo tengo configurado con pbbuttons y powerprefs al cerrar la tapa o salte el temporizador ya funcione la suspensión a RAM, pero esos programas son sólo para Mac's me temo.

t3l3m4k0

Para el control de la frecuencia de la CPU yo uso "powernowd", tengo un AMD-XP-M-2800+. Tengo el demonio configurado para que en funcion de la carga de CPU se acelere.
Tomo nota de las opciones que presentas, lo probaré a ver si noto cambios en la duración de la bateria.

ACER ASPIRE 1356LMi
DEBIAN SARGE

Por si alguien puede orientarme, el problema que tengo es que no me deja bajar de 1'4 Mhz aproximadamente. En Windows XP me deja bajar hasta 0'8 Mhz, y he visto comentarios en Linux con 0'4 Mhz, para el mismo procesador. ¿Alguien sabe de donde sale la tabla de valores vàlidos de frecuencias y tensiones?. He mirado en los kernels, sources, powernowd, etc y no se de donde saca los valores.

saludos, bye.

🗨️ 3
MaX

Lo tienes en /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

¿Cómo miras la frecuencia que estas usando? /proc/cpuinfo supongo.

🗨️ 2
t3l3m4k0

Los valores actuales los miro con Ksensors.

En /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies estan los valores que el kernel considera validos, pero no me deja modificarlos (creo, al menos yo no se como modificarlos).

Mirando por Google, he visto que en mi caso dependen del módulo Powernow (para micros AMD), y que el módulo obtiene los valores de la BIOS, (normal, los multiplicadores de reloj y reguladores de tensión del micro dependen del hardware de la placa). Según parece las BIOS de los portátiles ACER, no están muy actualizadas y las tablas de valores no incluyen todos los rangos válidos. En windos XP por lo visto se ignora los valores de la BIOS, autodetectando el rango de valores.

Saludos.

🗨️ 1
BocaDePez
BocaDePez

Tengo el mismo portátil (acer 1356lmi con un athlon xp-m 2800+), pero lo uso con la mandriva 2005LE (kernel 2.6.11-6) Usando powernowd y cpufreq, en efecto, la frecuencia baja a más o menos 790 MhZ y sube hasta 2200 MhZ según la necesidad. Cuando traté de actualizar mi mandriva por la recien salida Mandriva 2006 (kernel 2.6.12-12) , me dí cuenta que la frecuencia no bajaba de 1400 MhZ lo que causa que el ventilador se ponga en marcha mas frecuentemente y sobre todo que el laptop caliente mucho más.

Segun entendí, observas lo mismo con tu distribución. Por lo que encontreé en internet, parece que es un bug del kernel, pero no tengo mas detalles. Has encontrado una solucion para ese problema?

merakebas

Muy interesante el post, nuevas cosas a probar con mi portatil :)

Una pregunta, parece que ninguno usais swap. ¿No os da problemas? Leí hace un tiempo en kerneltrap que la swap era importante por la estructura del kernel, y como repartía la memoria entre los procesos.

Lo leí en los comentarios de un artículo en el que explicaba como montar la swap sobre la ram (lo cual no tendría mucho sentido si la swap no fuera importante, no? )

También leí otro acerca de que es mejor tener varias particiones de swap mas o menos pequeñas, que una grande (1 GB).

Y lo del journaling, ¿realmente es efectivo?

🗨️ 9
MaX

Si tienes RAM de sobra, te puedes permitir el lujo (y el riesgo) de ir sin swap.

En el Battery Powered Linux Howto recomiendan meterle caña un día, haciendo lo que harás todos los días y un poco más ;) y comprobar al final con free o /proc/swaps que no has usado nada o apenas nada.
Si necesitas paginar y no tienes swap, estás en un problema.

Cuando necesitas memoria se dedice si tirar de zonas de disco cacheadas en RAM (lo famosos "cached" que salen al ejecutar free) o si mandar a swap páginas de un programa que pueden ser menos utilizadas.
Hasta los núcleos 2.4 esto era automático, pero con los 2.6 podemos decirle que queremos que haga, si liberar zonas de RAM o páginar.
Nosotros queremos lo primero, para que escriba menos en disco.

Puedes leer un poco más sobre la gestión de memoria.

Yo ya que he empezado... termino con este tema xD
El balance lo puedes ver con (como root):
RaGNaRoK:~# sysctl vm | grep swappiness
vm.swappiness = 60
Va de 0 a 100 y cuanto más, más paginación se hace. Si mantienes la swap, con un valor de 10 está bien (si no tienes, lógicamente 0).

Para cambiarlo, modificamos el /etc/sysctl.conf:
vm.swappiness = 10
Y para que se cambie en tiempo de ejecución:
sysctl -w vm.swappiness=10

Lo de tener más particiones swap pequeñas que una grande no lo he probado, pero tiene lógica, porque puedes estar escribiendo en varias de ellas a la vez, en vez de tener que esperar a escribir siempre en la misma.
De todas formas, no se exactamente que uso le das, pero yo tengo 350Mb en el sobremesa y apenas uso 10Mb de vez en cuando =)

El journaling (¿Cómo se puede traducir? ¿Diario?) va anotando las operaciones que haces en disco. Así si se va la luz, puedes recuperar lo que estaba haciendo sin perder datos.
Algunos hemos machacado varias ext2 e incluso reiserfs cuando era inestable ;)

En el portátil, a mí personalmente, no me parece interesante el journaling porque no vamos a tener cortes de luz bruscos (para eso está la batería) y porque las escrituras para mantener el journal gastan bastante batería.
En otro momento vamos con el vmstat para que veáis las escrituras de disco que teneis ;)

Saludos.

🗨️ 8
merakebas

Muchas gracias por la respuesta, y muy interesante el enlace, en cuanto tenga un tiempo, me lo leo detenidamente :-)

La verdad es que lo de la swap es verdad, creo que salvo ocasiones muy puntuales, nunca lo ví por encima de unos ¿10 MB? usados, asi que en cuanto tenga tiempo, probaré estas cosillas :-)

anthrax

Excelente enlace :)

Saludos 8)

BocaDePez
BocaDePez

Yo tengo una duda:
Pensaba q de swap tiraba solo cuando había un excedente, osea q si no se llena la Ram no utiliza swap.
Cuando terminas un proceso no descarga de la ram?

Como supongo q teneis razón xD pues me gustaría saber donde anda lo de que escriba en ram en el kernel?

También compilando he visto algo así como "pungo de montaje para la suspensión", en esa opcion hay q utilizar / o se debe de tener una partición para q haga la suspension al hdd?

Si conseguis alguno modificar la tabla de frecuencias del procesador para que baje aún mas avisar!!! Mi pentium M 1800mhz no baja de 800mhz en win a 200mhz con cpufreqd.

Esta post mola bastante!

🗨️ 4
t3l3m4k0

como digo mas arriba, la tabla la da la bios.

🗨️ 3
BocaDePez
BocaDePez
🗨️ 2
BocaDePez
BocaDePez
🗨️ 1
BocaDePez
BocaDePez
BocaDePez
BocaDePez

Ringmaster.
Pues mi experiencia no es tan buena desactivando el swap.
Si bien puede parecer que no es necesaria al no usarse nunca (yo tengo 1 GB de RAM) una vez la desactivé sin querer, y cuando llevaba unas horas todo se me ralentizaba de forma increíble, teniendo que leer de disco duro contínuamente. Estuve así un mes, sin saber que le pasaba, hasta que me di cuenta que lo tenía desactivado y lo activé y vuelta a la normalidad y acostumbrada velocidad.
Y tenía un kernel 2.6.10 creo, preentible y compilado para mi máquina especialmente. No sé, creo que el que dice que el kernel está programado de forma que aunque no llegue a utilizar el swap (a menos que cargues de programas y llenes más allá de la física) lo necesita de alguna forma... no trabaja bien sin él.
Linux es más eficiente que windows en eso, pues utiliza toda la memoria que puede, utilizando de caché el resto que no se llena con los programas en ejecución.

undertow

Os hace chincheta chavales??

🗨️ 1
MaX

Hace :-P