Voici une astuce que certains connaissent peut-etre, et qui permet de mettre le cache de Firefox dans la RAM. L'intéret est d'accélérer la vitesse d'affichage des pages web. Par contre, à chaque reboot, on perd le contenu du cache, puisque la RAM est une mémoire vive.

Nous allons créer un disque virtuel en RAM, ce qu'on appelle un Ramdisk. Voici les étapes :

1. Définir la taille de la ramdisk.

Ouvrir le fichier /boot/grub/menu.lst avec l'éditeur que vous voulez (moi, j'utilise vi), et dans la section :

title Ubuntu 9.04, kernel 2.6.28-15-server
uuid 2ca83a41-b40b-4a98-ad86-97291f1341bb
kernel /boot/vmlinuz-2.6.28-15-server root=UUID=2ca83a41-b40b-4a98-ad86-97291f1341bb ro quiet splash
initrd /boot/initrd.img-2.6.28-15-server
quiet

mettez à la fin de la ligne "kernel /boot/vmlinuz-2.6.28-15-server root=UUID=XXXXX ro quiet splash", le paramètre ramdisk_size=65536, ce qui donne, pour la ligne :

kernel /boot/vmlinuz-2.6.28-15-server root=UUID=2ca83a41-b40b-4a98-ad86-97291f1341bb ro quiet splash ramdisk_size=65536

Attention : on met le paramètre ramdisk_size=65536 à la fin de la ligne, et pas sur une ligne en-dessous.

65536 correspond à une taille d’environ 65 MB, ce qui est largement suffisant pour surfer.

Sauvegarder et sortir du fichier. Il faut ensuite mettre à jour Grub :
sudo update-grub
puis rebooter le PC.


2. Formater la RAM
mke2fs -m 0 /dev/ram0
3. Créer le répertoire de montage
sudo mkdir /media/ramdisk
4. Monter le disque virtuel
sudo mount /dev/ram0 /media/ramdisk
Faites un df -h pour voir que votre FS est bien monté.


5. Script de montage àchaque démarrage du PC.

Le disque en RAM étant volatile, il faut mettre en place un script pour qu'il soit monté à chaque démarrage. Créer un fichier /etc/init.d/ramdisk.sh, et mettez-y ceci :
#! /bin/sh
/sbin/mke2fs -q -m 0 /dev/ram0
/bin/mount /dev/ram0 /media/ramdisk
/bin/chown user:user /media/ramdisk
/bin/chmod 777 /media/ramdisk
/bin/mkdir /media/ramdisk/Cache
/bin/chown user:user /media/ramdisk/Cache
/bin/chmod 777 /media/ramdisk/Cache
exit 0
Attention : vous devez remplacer user:user par votre login et le group auquel il appartient.

Rendre le script exécutable avec :
sudo chmod +x /etc/init.d/mountram.sh
et créer le lien symbolique :
sudo ln -s /etc/init.d/ramdisk.sh /etc/rc2.d/S09ramdisk
Rebooter le PC. Vous devriez voir une icone sur le Bureau représentant le ramdisk après le reboot.


6.Déporter le cache de Firefox dans la ramdisk

Par défaut, le cache de Firefox est situé dans ~/.mozilla/firefox/XXXX.default/Cache, où XXXXX est l'ID de votre profil.

Supprimer le répertoire cache, et créer le lien symbolique vers la ramdisk :
 rm -r ~/.mozilla/firefox/XXXX.default/Cache

ln -s /media/ramdisk/Cache ~/.mozilla/firefox/XXXX.default/Cache
Relancer Firefox et voilà. Normalement, ca devrait aller un peu plus vite.
Mais le cache firefox est déjà en ram du fait de l'utilisation automatique de la mémoire cache fournie par le kernel linux ?
Hormis effectivement le fait que la mémoire cache peut être plus faible que le contenu entier du cache firefox dans le cas où la ram a besoin d'être utilisée pour autre chose.
Le but en fait, c'est aussi de moins utilisé l'accès au disque, ce qui à long terme. Après, le choix est laissé à chacun de voir si le fait de mettre en RAM est judicieux du fait qu'à chaque reboot, le cache est perdu. Pour ma part, je reboot rarement mon PC qui tourne 24/24.
zapple a écritLe disque en RAM étant volatile, il faut mettre en place un script pour qu'il soit monté à chaque démarrage.
Pourquoi ne pas tout simplement utiliser /etc/fstab ?
9 jours plus tard
bonjour, intéressant, mais...
je cherche à transposer ça à karmic, qu n'utilise plus de menu.lst (grub), mais grub2...

quelqu'un pourrait adapter la manip à effectuer?

merci


edit : petite erreur à l'étape 5 :

(...)Rendre le script exécutable avec :
sudo chmod +x /etc/init.d/mountram.sh
à remplacer par :
sudo chmod +x /etc/init.d/ramdisk.sh
pour ce qui est de karmic et grub 2, à l'étape 1 qui concerne l'édition de /boot/grub/menu.lst, j'essaye d'adapter en modifiant grub.cfg
sudo chmod 644 /boot/grub/grub.cfg

sudo gedit /boot/grub/grub.cfg
edit 2 : voilà, après un reboot, suppression du cache firefox et lien symbolique vers le ramdisk nouvellement créé, ça marche impeccablement ici aussi 🙂
IHATEtrouspinette a écrit
zapple a écritLe disque en RAM étant volatile, il faut mettre en place un script pour qu'il soit monté à chaque démarrage.
Pourquoi ne pas tout simplement utiliser /etc/fstab ?
Parce que /dev/ram0 n'est pas une partition comme les autres : c'est une portion de la mémoire. Tu ne peux pas créer le FS une seule fois, mettre dans la fstab, rebooter et retrouver le FS.

@oliwek : merci pour avoir corriger mon erreur sur le nom du script, et pour le nouveau Grub.
avec plaisir, mais ma méthode pour grub2 n'est pas idéale : l'utilsateur n'est pas censé éditer à la main le fichier grub.cfg (d'ailleurs même un sudo gedit n'est pas suffisant pour le faire), quelqu'un devrait adapter ça ; en cas de mises à jour de grub ou du kernel, la manip sera certainement à refaire sinon...

à l'utilisation, mais je suis un habitué de la navigation avec plusieurs dizaines d'onglets ouverts, j'ai l'impression que le cache limité à 64mo est insuffisant (ou alors peut-être devrais-je placer cette limitation à 64mo de cache quelquepart dans les options firefox), je vais retester avec 128mo...

concernant la suggestion de IHATEtrouspinette de passer par fstab, la lecture de cet article semble indiquer que c'est bel et bien possible, en créant un tmpfs : http://www.generation-linux.fr/index.php?post/2009/05/04/tmpfs-%3A-utiliser-sa-ram-comme-repertoire-de-stockage
et tu connais les avantages de l'un par rapport à l'autre? j'avais compris que le système de fichier était différent (puisqu'on choisit le type de partitionnement pour le ramdisk), mais vu qu'il s'agit de fichiers temporaires à chaque fois, logés en RAM... On choisit la taille du ramdisk au préalable, je suppose qu'un tmpfs a une taille dynamiquement allouée par l'OS (ce qui aurait parfois ses avantages, et parfois ses inconvénients, suivant l'utilisation et la RAM dispo...)?
Il semble que tmps soit meilleur, mais je n'ai jamais testé, ou du moins pas encore ^^
Pour ma part,
j'ai rajouté cette ligne à fstab :
tmpfs /tmp tmpfs defaults,size=512m 0 0
Ensuite dans about:config de firefox, j'ai créé la ligne : browser.cache.disk.parent_directory avec la valeur: /tmp/firefox

pi ben ça a l'air de marcher :lol:
Bonjour

pour modifier ou plutôt ajouter une option de boot à grub2, on n'edite pas le fichier grub.cfg car il est en lecture seule et sera rééecrit à chaque changement de kernel.

le fichier à configurer est ici : etc/default/grub

on y trouve cette ligne : GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

on peut y ajouter les options ensuite il faut faire un
update-grub
en console.

grillon
2 mois plus tard
Dans karmic (je ne sais ce qu'il en est pour les versions précédentes), il y a déjà des partitions tmpfs mises en place sur /var/run, /var/lock et /dev/shm notamment (vous pouvez le vérifier avec la commande `df -h`).

Il suffit donc d'ajouter dans about:config une entrée browser.cache.disk.parent_directory avec la valeur "/dev/shm/<nom d'utilisateur>/firefox" par exemple (remplacez <nom d'utilisateur> par la valeur qui va bien).

On a quand même le soucis de perdre le cache en cas de reboot (ou de fermeture/ouverture de session ?), or c'est quand même utile d'avoir une conservation du cache pour ré-accéder plus rapidement aux sites que l'on consulte les plus souvent.

Je réfléchis à un script qui déporterait le contenu du cache de /dev/shm/<nom d'utilisateur>/firefox/Cache vers /home/<nom d'utilisateur>/.mozilla/firefox/<nom du profil>/Cache à la fermeture de la session utilisateur (et vice versa à l'ouverture d'une session utilisateur).
11 jours plus tard
Intéressant tout ça ! Si les pro pouvait proposer un tutoriel unique pour Grub2 comme il était fait pour l'ancienne version de grub... Ca serait vraiment très très sympa !

Merci d'avance !!
11 ans plus tard
Hello tout le monde,
Pour ceux qui ont acquis un PC dernièrement, mettre le cache en RAM est plus tentant avec les nouveaux PC avec toujours plus de RAM.

Lorsque l'on arrête son PC, sans fermer Firefox et que l'on le rallume, les onglets sont réouverts. Est ce que Firefox réouvre les onglets précédemment ouvert grâce en récupérant les informations dans son cache?

Si tel est le cas (à confirmer), en mettant le cache en RAM, on perd cette fonctionnalité assez sympa je trouve 🙁.
Vous avez mis le cache Firefox en RAM ? Dans une partition tmpfs?
16 jours plus tard
Comme indiqué plus haut, je mets le cache en mémoire en modifiant la clé de configuration "browser.cache.disk.parent_directory" et en ciblant "/run/user/1000/firefox-cache-default" et je mets le profil en mémoire également avec l'application "profile-sync-daemon". Je suis sur debian mais le paquet est probablement disponible aussi sur ubuntu.
Firefox réouvre bien les onglets de ma session précédente mais doit recharger la page de l'onglet auquel j'accède (si le pc a été redémarré).