Tmpfs bind
Je vous en ai parlé il y a quelques temps, monter un répertoire en tmpfs peut vous faire gagner un temps conséquent. Pour mémoire, le montage d'un répertoire en tmpfs permet d'utiliser un répertoire dans la RAM au lieu du disque dur. Le souci, c'est que si votre machine redémarre, tout ce qui est écrit dans la RAM va se vider. Ce qui serait super utile, c'est un système de synchronisation des données pour que tout ce qui se passe en RAM soit aussi écrit sur le disque en temps voulu.
Et Linux (et seulement lui) sait faire cela en une seule commande, et ce grâce à l'option bind de mount. Voici un exemple:
mount --bind -t tmpfs /tmp /tmp
Cela veut dire que /tmp est monté dans la RAM et sur le disque dur ! Pour preuve:
$ mount
/tmp on /tmp type tmpfs (rw,bind)
Ce qu'il y a de génial, c'est que lors de l'appel à cette commande, les fichier inscrits sur le disque remontent en RAM. En gros, le fait de monter le disque de cette manière ne vous fait pas perdre les données qui était présentes avant le montage.
Par contre, cela implique que ces données se trouvent sur le disque et dans la RAM, donc en deux endroits différents. Mais tout est synchronisé ! Si vous démonter le volume, les donnée seront présentes sur le répertoire cible.
Je vais donc (après sauvegarde évidamment) monter mon répertoire WEB en tmpfs et vérifier les temps de réponses. Je suis près à parier que cela va grandement accélérer mes accès au cache :)
Avis aux amateurs !
Trackbacks
Pour ajouter un trackback (retrolien) sur ce ticket, utilisez cette adresse: http://www.metal3d.org/index.php/trackback/default/tb?id=blog%2F89


En fait je me suis mal expliqué sur l'option bind. Cette dernière permet de monter un répertoire existant en un autre endroit. Plutôt que de faire un lien, les fichiers transites sur le point de montage durant les synchros de mount.
En d'autres termes:
''mount --bind /home/metal3d /tmp/metal3d'' va monter /home/metal3d sur /tmp/metal3d. Toutes écriture sur /tmp/metal3d ira se synchroniser dans /home/metal3d.
Donc, le montage avec un type tmpfs d'un répertoire existant va le monter dans la RAM. Puisque nous le montons sur le même point, les entrées vont se faire à partir du point de montage... et comme le type est tmpfs, il se fera d'abord en RAM, puis se synchronisera sur le disque.
Voilà pour la précision