Utiliser la RAM pour stocker vos fichiers d'échange.
Par flo|va-nu-pied le Le vendredi 6 mars 2009, 03:32 - linux - Lien permanent
Présentation
L'objectif ici est d'optimiser les temps d'accès aux données pour les fichiers temporaires en utilisant la RAM pour stocker ces fichiers. Nous allons donc allouer une partie de la RAM présente sur notre machine, un système de fichiers permettant cela: tmpfs.
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.