Inicio > Informática > Firefox se congela en Linux en el EeePc 901

Firefox se congela en Linux en el EeePc 901


Llevaba tiempo sufriendo este molesto problema; y es que firefox se congelaba durante unos segundos cada cierto tiempo. Hoy por fin he sacado un ratito para ponerme a investigar y he resuelto el problema.

Parece ser que firefox 3 usa sqlite y realiza constantemente fsync para mantener actualizada su base de datos en disco. Esto provoca que se congele en el eeepc, debido a que los discos SSD que lleva tienen ciertos problemas con las escrituras constantes de pocos datos.

El autor del post donde se analiza dicho problema, sugiere en este otro post crear una partición para firefox, pero yo he optado por utilizar un disco de ram, y así me ahorro el estar modificando las particiones. La idea es mantener en disco el directorio de firefox, llevarlo a ram para trabajar con él, y volver a volcarlo al disco cuando finalicemos.

Para ello, lo primero es añadir el punto de montaje del disco de ram al fichero /etc/fstab

none /mnt/ramdisk tmpfs defaults,size=200m 0 0

Si quieremos montar ya mismo el disco de ram, basta con ejecutar mount -a

A continuación, cambio el nombre del directorio de firefox por «firefoxram», que será el que sirva de respaldo en disco.

mv /home/user/.mozilla/firefox /home/user/.mozilla/firefoxram

Ahora enlazo el directorio que realmente utiliza firefox con el disco de ram

ln -s /mnt/ramdisk /home/user/.mozilla/firefox

Tal y como está ahora mismo el sistema, cuando firefox se abra, creará su directorio en ram con los datos de navegación del usuario, pero al apagar el sistema, estos se perderán (porque sólo están en ram). Es por eso que necesitamos el directorio de respaldo en disco. Su finalidad es que se copie a ram antes de abrir firefox, y se vuelque a disco al cerrarlo. Para ello, vamos a cambiar el ejecutable /usr/bin/firefox por un script que realice dichas tareas:

mv /usr/bin/firefox /usr/bin/firefox-bin
touch /usr/bin/firefox
chmod +x /usr/bin/firefox

Ahora, editamos el script /usr/bin/firefox y añadimos las siguientes lineas:

#!/bin/bash

cp -r $HOME/.mozilla/firefoxram/* $HOME/.mozilla/firefox
firefox-bin
cp -r $HOME/.mozilla/firefox/* $HOME/.mozilla/firefoxram/

E voilá. Adiós a los cuelgues de firefox.

Categorías: Informática Etiquetas: , , ,
  1. enero 21, 2011 a las 12:40 pm

    Muy interesante, habia leido que utilizaban la RAM para ejecutar Chrome y Firefox y asi incrementar su velocidad, lo que me dejo muy intrigado es el error que mencionas de los discos SSD con la escritura de datos pequeños

  1. enero 21, 2011 a las 12:57 pm

Replica a MoDeM Cancelar la respuesta