Le TmpFS pour dynamiser GNU/Linux

Quand on parle de disques ou de partitions sous GNU/Linux, on met souvent de côté (on les ignore ou les oublie) le système de fichiers monté en RAM (RAMFS à ne pas confondre avec le RAM-Disque) et le Système de Fichiers Temporaire (TmpFS).

Du premier, je ne dirai rien dans la suite. Reportez-vous pour plus d’informations à l’article sur Wikipédia (RAMFS), sinon que le TmpFS est une évolution des RAM-disques et du RAMFS et que son implémentation est native sous Linux depuis le noyau 2.6.x. Pour confirmation :

df --human-readable --type=tmpfs
ou
df -h -t tmpfs

La commande df devrait renvoyer un résultat contenant les informations sur le TmpFS :

tmpfs 1,8G 0 1,8G 0% /dev/shm

Notez que, par défaut, le TmpFS occupe la moitié de la mémoire (RAM) disponible.

Contrairement au RAMFS, le TmpFS permet de limiter la taille de la mémoire allouée (fixée au montage) et de la modifier à la volée avec l’option -remount de mount. Le TmpFS permet par ailleurs au système d’utiliser la partition swap lorsque c’est nécessaire, ce qui est une garantie supplémentaire.

Par ailleurs, le TmpFS alloue dynamiquement la mémoire de manière à ne pas l’utiliser en excès et offre de meilleures performances grâce à son extrême simplicité. Le temps d’accès aux données est donc considérablement réduit : « La mémoire vive a un temps d’accès approximativement 1000 fois plus court que les disques durs » (voir l’article sur Wikipédia).

Qu’importe si les performances réelles sont plus ou moins élevées. Pour la conversion de fichiers (audio) en grand nombre ou volumineux (vidéo), pour la navigation sur Internet, par exemple, ce qui compte c’est d’abord et avant tout que le temps d’accès aux données soit sensiblement accru.

Pour la démonstration, j’ai converti 14 fichiers mp3 vers le format wav avec XCFA (le remarquable logiciel de conversion audio). Les résultats sont sans appel :

  • Conversion de 14 fichiers mp3 -> wav hors du TmpFS : 00:01:19.716. Soit 1 minute et 19 secondes.
  • Conversion de 14 fichiers mp3 -> wav depuis le TmpFS : 00:00:27.065. Oui oui, vous lisez bien : 27 secondes !

Convaincu ?

Ah oui ! J’allais oublier… il y a un inconvénient à utiliser le TmpFS : tout fichier créé dans le Système de Fichiers Temporaire disparaît à l’arrêt du système. Pour éviter de perdre vos précieuses données, il suffit de les sauvegarder. Et pourquoi ne pas automatiser cette sauvegarde à l’extinction de votre machine ? Cette tâche fera l’objet d’un prochain article.

Maintenant, passons aux travaux pratiques.

Montage du TmpFS

La première chose à faire est de créer un point de montage accessible facilement. J’ai donc choisi de monter le TmpFS directement sur le bureau via le répertoire /media en lui attribuant un accès en lecture et écriture (depuis un terminal administrateur) :

mkdir /media/ramdisk/
chmod 0777 /media/ramdisk/

Ne reste plus qu’à monter le TmpFS directement dans le répertoire /media/ramdisk, en précisant la taille de mémoire allouée (valeur à ajuster selon la configuration de la machine), le système de fichiers utilisé et le point de montage :

mount -o size=1024M -t tmpfs tmpfs /media/ramdisk/

Montage automatique du TmpFS au démarrage

Pour monter automatiquement le TmpFS au démarrage, il suffit de modifier le fichier /etc/rc.local afin qu’il exécute la commande de montage au démarrage du système :

gedit /etc/rc.local

Voici le contenu de mon fichier /etc/rc.local modifié :

mount -o size=1024M -t tmpfs tmpfs /media/ramdisk/
exit 0

Au redémarrage de la machine, le TmpFS sera donc monté automatiquement dans le répertoire /media/ramdisk et apparaîtra sur le bureau (Desktop) avec l’icône d’un “RamDisk” :

icône pour TmpsFS

Application sur Firefox/Iceweasel

Firefox/Iceweaseal, tout le monde le sait, est le meilleur navigateur Internet (graphique) ! Troll inside. C’est aussi, et ce n’est un secret pour personne, un foutu glouton ! No troll inside. À raison d’une trentaine d’onglets ouverts (selon les contenus), Firefox/iceweasel a une fâcheuse tendance à se transformer en authentique usine à gaz. Qui n’a jamais vu la charge de son processeur avoisinée les 90 voire même les 100% d’utilisation pour Firefox/iceweasel ?

Pour y remédier et accélérer la navigation sur Internet, il suffit de déplacer le cache de Firefox/Iceweasel dans le TmpFS monté sur le bureau. Rien de plus simple.

1. Lancer Firefox/Iceweasel.

2. Dans la barre d’adresse, taper : about:config.

3. Si elle n’existe pas, créer l’option (clic droit -> “Nouvelle” -> “Chaîne de caractères”) : “browser.cache.disk.parent_directory” avec la valeur “/media/ramdisk/“.

4. Relancer le navigateur.

Un nouveau répertoire /Cache/ doit être créé dans le répertoire /media/ramdisk/ affiché sur le bureau (Desktop).

Appréciez la différence !


À propos de cet article