jueves, 24 de enero de 2008

Tutorial: Disco RAM en Ubuntu y cache de Firefox a RAM

Buenaaaasss...Os voy a contar como me las he ingeniado para evitar escritura en disco SSD innecesaria, con el consecuente ahorro de ciclos de lectura/escritura y preservación de nuestra querida, escasa y cara memoria SSD.
Todo ésto viene desde que os enseñé como puede ser ejecutado Windows XP en RAM. Siempre me ha interesado el tema de usar la memoria RAM como disco adicional por su rapidez y en este caso (EeePC) ahorrarle palizas al SSD. Pero esta vez en UBUNTU.
La idea la tenía clara:



  1. Crear un disco RAM de 100 Mb

  2. "Deportar" el caché de Firefox a dicho disco

Pues bien, os dejo el método que es muy fácil, pero que a mí me ha costado un par de horas de búsqueda de información en internet, pruebas y demás.

PASO 1: CREACION DEL DISCO RAM EN UBUNTU

Abrimos una consola (si, ya sabeis, la Maldita Línea de Comandos) y escribimos lo siguiente:

sudo mkdir /media/ramdisk (creamos el punto de montaje del disco RAM)

despues...

sudo mount -t tmpfs -o size=100M,nr_inodes=10k,mode=7777 tmpfs /media/ramdisk

La explicación de todo este chorizo la encontrareis muy clarita aquí.

Una vez ejecutado el comando, os aparecerá en el escritorio el icono del nuevo disco que se ha creado. Unas fotitos:







PASO 2: CAMBIAR EL DIRECTORIO DE LA CACHE DE FIREFOX

Abrimos el Firefox y escribimos lo siguiente en la caja de direcciones: about:config.
Nos aparece entonces una rejilla con todos los datos de configuración del Firefox. Tenemos que añadir una línea nueva de la siguiente forma:

  • Botón derecho sobre la lista->New->String

  • Escribimos lo siguiente en la ventana que aparece: browser.cache.disk.parent_directory

  • Pulsamos "OK" y a continuación escribimos la ruta al disco RAM: /media/ramdisk

  • Pulsamos OK y la lista nos ha de quedar como se muestra en la foto:



Cerramos Firefox, reiniciamos el ordenador, volvemos a crear el disco RAM como se indica en el PASO 1 y al abrir Firefox tendremos ya la caché en la RAM. Para comprobarlo, escribiremos about:cache en la barra de direcciones y nos aparecerá lo siguiente:



Como yo no soy experto en Linux, aún no se como hacer que en el inicio del ordenador se cree automáticamente el disco RAM con el comando que os he dado, pero seguro que alguno de vosotros lo podrá contar para los "torpes" como yo.
Espero que este truco os sea útil.

PRIMERA ACTUALIZACION: Podeis usar el disco RAM tambíén como directorio de descarga de archivos. Para ello os vais a Edit->Preferences->Main->Downloads->Save Files To y cambiais el directorio por el de el disco RAM. De esta forma tampoco machacareis la SSD con las descargas de archivos.

SEGUNDA ACTUALIZACION: Para crear la unidad RAM al inicio de UBUNTU, seguid los pasos que explican en este hilo de ubuntu-es.com. Probado y funcionando. Básicamente la idea es crear un script y ejecutarlo al inicio. Y así, un montón de cosas más.

13 comentarios:

Lechonix dijo...

Para que una partición se monte al inicio de un sistema GNU\Linux hay que editar el fichero \etc\fstab, lo que nunca me he planteado es si se puede montar un ramdisk ahí, ya que no deja de ser algo temporal, pruébalo a ver, si tienes ubuntu con gnome ábrelo desde la consola con "sudo gedit \etc\fstab" ( sin comillas ), aquí te dejo un enlace con información sobre dicho fichero.

http://www.linuca.org/body.phtml?nIdNoticia=166

Jiuck dijo...

chorizo! jajajajaja y además de color rojo, como toca. xDD

Muy buena idea. Has comprobado si se te acelera firefox en sí? Lo digo, proque si es igual que con windows ocmpleto desde ram como hiciste, es una pasada...

Por cierto, cuántos ciclos de R/W tiene el SSD? No me quiero asustar mucho~~ (auqnue espero que para cuando se casque ya estén mil vexces más barato).

P.D.: Hoy DEBE ser mi gran día! :D

Marcos dijo...

La SSD si mal no recuerdo tiene sobre 100000 ciclos de Lectura/Escritura.

Bultza dijo...

Newimagenio, te has dejado algo importantísimo, lee la siguiente entrada:
http://ubuntu-eee.tuxfamily.org/index.php5?title=How_to:_Reduce_Disk_Writes_to_Prolong_the_Life_of_your_Flash_Drive

ahí lo que hacen es dar la vuelta a tu la tortilla :-D. es decir, todas las aplicaciones linux hacen uso del directorio /tmp para escribir archivos temporales, por lo tanto es el directorio que con diferencia más escrituras soporta y todo va sobre la ssd. En esa wiki te dan tres comandos para poner en el fstab y con ello trasladas el directorio tmp a la ram y con ello todas las escrituras a la ram y vuelves el sistema algo más rápido.

El unico problema es que si se cuelga el ubuntu y no has guardado nada no podrás recuperar los archivos temporales del directorio tmp, algo que el 99% no lo hacemos ni aunque tmp esté en el disco duro.

Echale un vistazo porque merece mucho la pena hacerlo y además puedes hacer lo que tu has dicho, usarlo para descargas temporales etc.

Bultza dijo...

El link completo no ha salido y debería cambiar "vuelta a la tortilla " por "rizar el rizo"
El link siguiente tienes que quitarle los DOS espacios que he añadido:
http://ubuntu-eee.tuxfamily.org/index.php5?title= How_to:_Reduce_Disk_Writes_to_Prolong_the_Life_of_ your_Flash_Drive

kikeenrique dijo...

Como comenta lechonix para que se cree automaticamente tienes que introducir el mismo chorizo del mount en el archivo /etc/fstab.
Así es como quedaría.
# 1.file system 2. mount point 3.type 4.options 5.dump 6.pass
tmpfs /media/ramdisk tmpfs size=100M,nr_inodes=10k,mode=7777 0 0


Como siempre, si haces un man mount y man fstab tendrás más información.
Como curiosidad resaltar que usar un "tmpfs" es más apropiado que un "ramfs", dado que el primero es una derivación del segundo. Para saber más, a google.

newimagenio dijo...

Yo lo he hecho de otra forma, creando un script y ejecutarlo al inicio. Mirad la SEGUNDA ACTUALIZACION que he puesto en esta noticia.

kikeenrique dijo...

Hombre, es otra manera de hacerlo. Funciona por el uso que va a tener el sistema de ficheros, pero por comodidad, como buena practica y como recomendación te aconsejo el /etc/fstab para estas cosas, que para esto existe.
Lo suyo es comer la sopa con cuchara.

Diego dijo...

Efectivamente la mejor forma de hacerlo es usuando fstab que para eso esta, además de esta forma podemos usar este comando:
tmpfs /tmp tmpfs size=100M,nr_inodes=10k,mode=7777 0 0

así montamos tmp en ram antes del arranque y no nos preocupamos que con el script al arranque se hayan escrito cosas antes de la ejecución y de esta forma perdamos datos al inicio.

Y los 100 mb de memoria los podemos usar para guardar la cache, los temporales y si usamos mldonkey las escrituras de buffer, de esta forma estamos haciendo uso completo de esta ventaja.

Aunque recomiendo solo usarlo para los dos primeros, que para el mldonkey mejor tener un ordenador fijo en casa :P

xgabo dijo...

magenio:

Epale:

en tu comentario dices que no sabes como hacer el proceso automatico:

Hay varias maneras, una ya te la explicaron aca con el fstab.

Yo te voy a explicar:

" como correr un script al inicio de linux"

1.- Crear el script y pones en el todos los comandos

2.- cambiales los permisos para que sea ejecutable

chmod a+x myboot.sh ( por ejemplo)

3.- Copia el script en en la etc/init.d

4.- update-rc.d myboot.sh ( pones tu script aca)

Y listo

Ahora cuando arranca Linux te leeara tu script.

Saludos

xgabo@debian
Kernel:2.6.18.21:/etch

newimagenio dijo...

Muchas gracias a todos. Seguire vuestros consejos. Con gente como vosotros...quien dijo miedo??

Saludos

x2l2 dijo...

rece mas sencillo lo del fstab pero no se pk le tienen tanto miedo ^_^U

Luis Javier Orellana dijo...

¿Puedo hacer esto en Xandros ocupando los mismo comandos? Saludos.

Publicar un comentario