Tmpfs

Tmpfs permet contrairement aux RAM Disk, d'allouer dynamiquement la taille du volume. Il est bien sur possible d'en fxer la taille maximum via l'option size . Il est à noter qu'un df -h sur le dossier /tmp vous indiquera toujours la taille maximum que vous aurez fixé; mais l'espace réel occupé sur votre RAM ne correspondra qu'à la quantité d'espace utilisé. C'est d'ailleurs ici toute la puissance de ce système de fichier.

Procédure

Édition de fstab

Éditez le fichier /etc/fstab pour y ajouter la ligne suivante

none    /tmp            tmpfs   noexec,nosuid,nodev,size=1024m 0 0

Remonter la nouvelle partition

Normalement si vous prenez soin de fermer toutes vos sessions utilisateur, le dossier /tmp vous n'aurez aucun problème à démonter la partition /tmp actuellement utilisée.

flopc ~ # umount /tmp

Si la commande vous retourne

umount: /tmp: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

vous pouvez toujours suivre ses conseils et lister les processus accédant actuellement au point de montage

flopc ~ # lsof /tmp/

Peut-être une session utilisateur qui traine dans un terminal. libre a vous de la tuer en vous reportant au PID du process.

Désactivation de la swap

Personnellement j'ai préféré commenter la swap de mon fstab: si l'on est dans une démarche d'optimisation d'accès disque la swat est a proscrire dans la cas d'un disque physique unique.

# /dev/sda2             none            swap            sw              0 0

Afin de désactiver la swap actuellement utilisée; entrez simplement la commande

flopc ~ # swapoff /dev/sda2

Aller plus loin

Il est à noter que tmpfs permet une modification à la volée des diverses options du système de fichier. Ainsi si de la place venait à manquer ou que le besoin de permettre l'exécution d'applications sur cette partition, vous pouvez utiliser l'option remount pour prendre en compte de nouvelles options. état initial

flopc ~ # mount | grep /tmp
/dev/shm on /tmp type none (rw,noexec,nosuid,nodev,size=1024m,size=2g)
flopc ~ #

fixons à présent la taille de notre partition du point de montage /tmp à 2Goet permettons aux binaires d'être exécutés sur la partition

flopc ~ # mount /tmp/ -o exec,size=2g,remount
flopc ~ #

Vérifions la prise en compte des modifications

flopc ~ # mount | grep /tmp
/dev/shm on /tmp type none (rw,nosuid,nodev,size=1024m,size=2g)
flopc ~ #

On remarquera une petite drôlerie sur la façon dont mount semble voir les choses : Bien que l'option size soit présente deux fois; il apparait donc que la dernière valeur de size soit prise en compte. Simple remarque ;-)

flopc ~ # df -h /tmp/
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 2.0G  1.1M  2.0G   1% /dev/shm

vous pouvez revenir a tout moment à la configuration fixée dans votre fstab en tapant simplement

flopc ~ # mount /tmp/ -o remount
flopc ~ # df -h /tmp/
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 1.0G  964K  1.0G   1% /dev/shm
flopc ~ # mount | grep /tmp
/dev/shm on /tmp type none (rw,noexec,nosuid,nodev,size=1024m)
flopc ~ #

Apparemment mount préfère lorsque l'on renseigne la taille dans le fichier fstab.

Voila; libre à vous d'utiliser le répertoire /tmp pour y stocker ce que bon vous semble ou encore d'utiliser ce principe sur d'autres points de montage. L'espace offrira désormais des temps d'accès qu'offre la RAM de votre machine.

Liens connexes