Il faut sauver le SSolDat Ryan
Posté par Gore le mardi 7 juillet 2009, 21:56 dans Geek
Petite astuce qui contribue à ne pas flinguer un skeudur SSD[1] si vous utilisez un OS digne de ce nom, il est une bonne idée de stocker le cache de RenardDeFeu dans un filesystem en RAM, que ce soit dans un ramdisk ou, plus simplement, en utilisant TmpFS de la manière suivante.
Notes
[1] Ceci dit cette astuce est aussi valable si vous utilisez un disque dur traditionnel, cela réduira vos I/O disques.
Bon allez on va pas rester là à s'regarder comme deux tapettes, hein. Après avoir déterminé où sur votre système sera monté le tmpfs contenant le cache de Firefox (dans mon cas, /mnt/cache), il est grand temps de passer à l'acte en montant effectivement le tmps :
gore@chorizo:~% sudo mount -t tmpfs -o noatime,size=64M,nr_inodes=10k,mode=0777 tmpfs /mnt/cache/
Ici, je monte un tmpfs d'une taille de 64 Mo disposant de 10k inodes (par défaut tmpfs alloue la moitié des pages physiques de votre RAM) en mode 777[1] afin que mon utilisateur non privilégié puisse y écrire.
La seconde étape de configuration nécessite d'éditer — ou de créer si elle n'existe pas — la clé browser.cache.disk.parent_directory de type string dans l'éditeur de configuration de Firefox (accessible en demandant about:config dans la barre d'adresse) et de la définir à la valeur du chemin absolu vers le répertoire où est monté votre tmpfs. Voici à quoi ça ressemble chez moi :
Preference name Status Type Value ... browser.cache.disk.parent_directory user set string /mnt/cache
Ceci fait, relancez Firefox et contrôlez que l'écriture du cache disque d'effectue désormais dans le répertoire où est monté le tmpfs :
gore@chorizo:~% lsof '/mnt/cache/' COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox 19654 gore 31u REG 0,15 276 72432 /mnt/cache/Cache/_CACHE_MAP_ firefox 19654 gore 32u REG 0,15 342939 72433 /mnt/cache/Cache/_CACHE_001_ firefox 19654 gore 33u REG 0,15 341095 72434 /mnt/cache/Cache/_CACHE_002_ firefox 19654 gore 34u REG 0,15 811960 72435 /mnt/cache/Cache/_CACHE_003_
N'oubliez pas d'ajouter la ligne magique dans votre fichier /etc/fstab pour que le tmpfs soit créé à chaque reboot de la machine :
tmpfs /mnt/cache tmpfs noatime,size=64M,nr_inodes=10k,mode=0777 0 0
Notes
[1] Ne faites bien évidemment pas ça si vous partagez le système avec d'autres utilisateurs, tout le monde pourrait non seulement lire le contenu de votre cache mais aussi le modifier...