Ceci est une ancienne révision du document !
tmpfs
Présentation de tmpfs
Tmpfs est implémenté directement dans le noyau Linux depuis la version 2.6 (c'est à dire qu'il est disponible dans toutes les versions d'ubuntu supportés officiellement).
Il remplace les commandes de création de ramdisk, et offre l'avantage de redonner la mémoire vive aux systèmes d'exploitations en cas de non utilisation de celle-ci.
Un RAMDisk ou un volume Tmpfs dans ce cas présent est un espace dans la mémoire vive qui est utilisé pour stocker des fichiers temporairement (en effet le volume est vidé à chaque arrêt du système).
Un tmpfs est donc idéal pour stocker les fichiers temporaires de votre ordinateur. Ces fichiers temporaires sont des fichiers qui sont, par exemple, créé puis effacés lors de l'extraction d'un fichier compressé, lors d'une mise à jour, etc …
Avantages et Inconvénients
Tmpfs permet de créer un espace de stockage dans la mémoire vive, Il y a plusieurs conséquences:
- Tous les fichiers seront effacés dès le prochain redémarrage ou après une coupure de courant ! (En utilisation pour des fichiers temporaires l'inconvénient devient ici un avantage, car les fichiers seront purgés même si le programme oubli de le faire !)
- Vitesse d'accès au fichier accrue.
- Économie de consommation électrique.
- Baisse de l'usure des disques (surtout pour les SSD).
- Baisse des coûts d'accès au disque lors ceux-ci sont payants (par exemple pour les disques réseaux EBS d'Amazon)
- tmpfs, si la RAM est pleine vient automatiquement s'écrire sur le disque dur dans la partition "swap" ce qui permet de ne pas impacter les performances si le PC a besoin de toute votre RAM
- un tmpfs de 1 GO ne prend pas 1 GO de place dans la RAM s'il est vide, en effet il ne prendra que la place des fichiers qu'il contient.
Mise en place
Mettre /tmp en tmpfs
C'est le but même de tmpfs à l'origine !
pour ce faire il suffit d'ajouter au fichier texte /etc/fstab la ligne:
tmpfs /tmp tmpfs defaults,size=32M 0 0
Cette modification est effective au prochain démarrage.
Créer un tmpfs personnalisé
Créer votre répertoire
sudo mkdir /media/virtuelram
Tout ce qui sera dans ce répertoire sera stocké en mémoire vive.
Définir les droits
Et oui, pour pouvoir écrire dedans depuis n'importe quel utilisateur :
sudo chmod 777 /media/virtuelram
Monter l'accès
Si vous voulez le monter ponctuellement :
sudo mount -t tmpfs -o size=512M tmpfs /media/virtuelram
l'option size permet de définir la quantité de mémoire allouée.
Si elle n'est pas définie, le système attribuera la moitié de la quantité de la mémoire physique.
Pour le monter à chaque démarrage, il faut éditer le fichier fstab. Pour cela, il suffit d'entrer cette commande dans un terminal
Et ajouter une de ces lignes de commande dans le ficher et enregistrer les modifications
tmpfs /media/virtuelram tmpfs defaults,size=512M 0 0
pour 512 Mo
tmpfs /media/virtuelram tmpfs defaults,size=1g 0 0
pour 1 Go
Etc…
Quelques exemples d'utilisation
Le dossier /tmp
contient des fichiers temporaires qui de toutes façons s'effacent au redémarrage, donc c'est sans risque de perte de données.
/var/tmp ou /var/lock
Classiquement ces dossiers contiennent des fichiers temporaires mais qui ne s'effacent pas automatiquement. Globalement cela ralenti un peu le lancement des programmes (qui doivent réécrire ces fichiers à chaque fois).
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#VARTMPTEMPORARYFILESPRESERVEDBETWEE
Accélérer Firefox
Sous ce titre un peu racoleur, il s'agit de placer le cache en tmpfs.
Pour cela dans la barre d'adresse de firefox taper about:config puis rediriger ce cache vers votre dossier tmpfs en modifiant la ligne browser.cache.disk.parent_directory
Si cette ligne n'existe pas, il faut la créer par un clic droit, nouveau > Chaines de caractère.
Copier des fichiers
L'autonomie des portables en mode lecture vidéo par exemple, est plus grande avec un fichier en mémoire vive. La conversion des fichiers en divx, le rippage des CD, DVD etc … sont nettement plus rapides en mémoire vive. Etc…
L'utilité des fichiers rc.local et rc.local.shutdown
Et oui ! Ce sont des fichiers qui permettent d'exécuter des commandes au démarrage et à l'extinction utile pour améliorer l'utilisation de tmpfs (Vous pouvez par exemple copier des fichiers au démarrage dans votre tmpfs, ou les copier en dehors avant l'extinction automatiquement via ces deux scripts).