jueves, 5 de mayo de 2011

Acelerar Firefox ejecutandolo desde la RAM en Linux.

FUENTE: http://www.taringa.net/posts/linux/7559313/Acelerar-Firefox-ejecutandolo-desde-la-RAM-en-Linux_.html
===========================================
Buenas, hace un par de días en el laburo estuve investigando un poco como podía acelerar FIrefox, ya que tengo el mismo perfil desde hace como dos años y se puso un poco denso. Casi todos los post, threads, manuales, hacían referencia en borrar o usar menos capacidad de cache para el perfil, reducir el consumo de ram, bajar de versión, etc. Como soy bastante rebuscado, no quería hacer eso. Probé corriendo un livecd de Ubuntu con la opcion "toram" para cargar el contenido del cd en la ram, copie mi perfil de Firefox en la sesión, y me sorprendió como cargo todos los plugins, themes, addons, historial, etc de una y maso menos en un cuarto de lo que tarda en arrancar.

Así que esa es la solución me dije, correrlo desde la memoria RAM acelero la carga y comportamiento del navegador, así como el de los plugins, por ejemplo flash no me había funcionado así hace mucho. Como es obvio, no se puede usar un livecd como sistema para laburar.

Básicamente lo que debemos hacer para correrlo desde la ram es:
1.-Crear un ramdisk con el suficiente espacio y montarlo.
2.-Bajar la versión binaria de firefox, es el archivo .tar.gz que descargamos desde la web, descomprimirlo y copiarlo al ramdisk.
3.- Copiar el perfil de firefox en el ramdisk
4.- Configurar firefox para que cargue el perfil y la cache del mismo en el ramdisk
5.-Sincroniza las carpetas donde están los perfiles del navegador, dado que cuando reiniciemos el equipo, el ramdisk se habrá borrado por completo.

Sin tanta charla, los pasos.

1.- Crear un ramdisk con el suficiente espacio y montarlo.
Bien el tamaño que vamos a asignarle al ramdisk es bastante variable, en mi caso, tengo 4GB de ram, y nunca he podido consumir mas de 2GB., así que lo creo con 1GB, pero esto depende del entorno donde estemos.

Para crear un disco virtual primero debemos crear un punto de montaje:


    $ sudo mkdir /media/ramdisk



Luego simplemente montamos en esa carpeta, la cantidad que queramos de memoria:

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


*Nota: en la opción size, debemos modificarla por la cantidad de memoria que queramos montar.


2.- Bajar la versión binaria de firefox, es el archivo .tar.gz que descargamos desde la web, descomprimirlo y copiarlo al ramdisk.

Se puede bajar la versión actual, 3.6.11 desde:

http://mozilla.c3sl.ufpr.br/releases//firefox/releases/3.6.11/linux-i686/es-ES/firefox-3.6.11.tar.bz2

Luego, en mi caso tengo una carpeta Programas en mi carpeta personal donde guardo este tipo de programas valga la redundancia, asi que lo descomprimimos dentro de esta carpeta o donde uds quiera. Eso si, en donde sea que lo descompriman, tienen que que tenga permisos su usuario y también tengan la precaución de no borrar esta carpeta.

Con respecto a los plugins, debemos pegarlos en la dentro la carpeta que hemos descomprimido en la carpeta "plugins". Con esto nos asugramos que tambien los este montando en la ram.

Ahora, debemos copiar esta carpeta en el ramdisk, entonces tenemos dos soluciones, cp o rsync. Personalmente uso rsync, el comando ha usar es:


    $rsync -av /home/franco/Programas/firefox/ /media/ramdisk/firefox/



3.-Copiar el perfil de firefox en el ramdisk
Los perfiles de FF se almacenan en /home/USUARIO/.mozilla/firefox/xxxxx.default . En mi caso es /home/franco/.mozilla/firefox/slkxz9xp.default/. El comando a utilizar es:


$rsync -av /home/franco/.mozilla/firefox/slkxz9xp.default/ /media/ramdisk/firefox/slkxz9xp.default/



4.-Configurar firefox para que carge el perfil y la cache del mismo en el ramdisk


Para que tome el perfil desde la ram se hace muy . Dentro de la carpeta /home/USUARIO/.mozilla/firefox/ se encuentra un archivo llamado profiles.ini, debemos editarlo.
El contenido es

    [General]
    StartWithLastProfile=1

    [Profile0]
    Name=default
    IsRelative=1
    Path=xxxxx.default


y debemos cambiar los parametros

IsRelative=1 por IsRelative=0 y el camino o path de

Path=xxxxxxx.default a Path=/media/ramdisk/firefox/xxxxxxx.default

En mi caso quedo:


    [General]
    StartWithLastProfile=1

    [Profile0]
    Name=default
    IsRelative=0
    Path=/media/ramdisk/slkxz9xp.default



Guardar los cambios.

Luego que firefox guarde la cache en el ramdisk, debemos ir a la barra de direcciones, escribir


    about:config



Ponemos que vamos a ser prudendetes, y le damos dentro con el botón derecho-> Nuevo -> Cadena.
El nombre que debemos ponernerle es


    browser.cache.disk.parent_directory



Y el valor es la dirección del ramdisk


    /media/ramdisk/firefox




5.- Sincroniza las carpetas donde están los perfiles del navegador, dado que cuando reiniciemos el equipo, el ramdisk se habrá borrado por completo.
Llegado a este punto, si ejecutamos


    sh /media/ramdisk/firefox/firefox



La primera vez, hace el chequeo de compatibilidades de addons y arranca completamente desde la memoria ram. Si lo cerramos y volvemos a abrir, ya directamente lo abre.

Surgen dos inconvenientes. El primero y principal es que los cambio que realismos a nuestro perfil se perderán al reiniciar el equipo. El segundo y menos drástico es que si hacemos estos pasos cada vez, siempre tardaremos en ejecutar todo y en que firefox va a volver a hacer la comprobaciones en el primer inicio.
La solución es bastante simple, creamos un cronjob que sincronice el ramdisk con nuestra copia en el disco duro. No voy a explicar en que consiste las tareas sobre cron. Abrimos directamente el archivo /etc/crontab. Y pegamos esto en la linea:


    1,10,20,30,40,50,59 * * * * franco rsync -av /media/ramdisk/firefox/ /home/franco/.mozilla/firefox/slkxz9xp.default/



Lo que hace esta es ejecutar rsync cada 10min. Con lo que tenemos un respaldo del perfil cada ese tiempo.


En el laburo, directamente lo primero que abro es FF, así que me hice un scriptonto para que lo cargue en la ram apenas abra . Dependiendo del entorno de escritorio que estén usando, lo puede ejecutar al inicio de .




    #!/bin/bash
    mount -t tmpfs -o size=1024M,nr_inodes=10k,mode=7777 tmpfs /media/ramdisk/;
    rsync -av /home/franco/.mozilla/firefox/slkxz9xp.default/ /media/ramdisk/firefox/slkxz9xp.default/;
    rsync -av /home/franco/Programas/firefox/ /media/ramdisk/firefox/;
    /media/ramdisk/firefox/firefox&




Para verificar que tomo los cambios correctamente, podemos abrir


    about:support


y fijarnos en que carpeta esta guardando la cache.

A mi me funciona correctamente, aunque me parece que no lo he explicado de la mejor forma, asi que cualquier consulta bienvenida.

No hay comentarios:

Publicar un comentario