Serveur linux : découvrez et maitrisez votre tmpfs
Si vous utilisez tmpfs sur linux, très utile pour accélèrer les accès disques, il peut être utile de limiter la taille mémoire maxi qui peut lui être allouée pour ne pas gêner les autres services du serveur
C'est quoi ?
Sur linux , tmpfs permet d'utiliser une partie de la ram comme si c'était un disque dur (comme le ramdisk sur amiga) !
+ avantage : la vitesse bien sur, pas d'accès disque donc c'est instantané (et sans solliciter le disque dur).
- inconvénient : évidemment au redémarrage tout est perdu puisque dans la ram, c'est dont à utiliser uniquement pour les fichiers temporaires et les fichiers de cache de votre proxy, cms ou même de firefox . (encore qu'on peut s'affranchir du pb de reboot en rétablissant un contenu statique au boot , cf /etc/rc.local sur fedora et redhat , et on pourrait tout à fait mettre un site web dans tmpfs pour l'accélèrer).
Comment qu'on s'en sert ?
Par défaut, sur la plupart des distrib, vous avez déjà une partition tmpfs d'activée (et vous ne le savez pas) :
# df -hT
Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1 ext3 3,0G 1,8G 1,1G 63% /
...
/dev/shm tmpfs 4,0G 0 4,0G 0% /dev/shm
Ici sur un serveur équipé de 8Go de ram, j'ai bien une partition /dev/shm de type tmpfs et d'une taille maxi de 4Go.
A savoir que 4 Go c'est une limite, la taille n'est pas allouée à l'avance et n'occupe donc pas la ram tant que vous n'écrivez pas dedans !
Pour autant si vous l'utilisez (pour vos fichiers temporaires et vos fichiers de cache par exemple) , il peut être utile de baisser la limite, pour ne pas risquer d'utiliser autant de ram et pénaliser les autres services du serveur (web, base de données ... ) .
Comment limiter la taille maxi allouée ?
La règle est de donner la moitié de la ram physique en taille maxi si vous ne précisez rien d'autre.
Pour modifier cette limite, il suffit d'éditer le fichier /etc/fstab (sur fedora et redhat) et modifier la ligne tmpfs comme ceci (nécessite d'être root) :
Avant :
/dev/shm /dev/shm tmpfs defaults 0 0
Apres :
/dev/shm /dev/shm tmpfs defaults,size=256M 0 0
Ensuite il faut soir redémarrer le serveur à la ouinedoz pour prendre en compte la modif, ou bien plus simplement remonter (cad réactiver si vous n'êtes pas familier des "mount" ) cette partition pour prendre en compte les nouveaux réglages (on est sur linux, pas besoin de redémarrez même si on modifiait la table des partitions du disque dur, sacrebleu ) :
# sudo mount -o remount /dev/shm
Et on vérifie que la modif soit bien prise en compte :
# df -hT
Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur
...
/dev/shm tmpfs 512M 0 512M 0% /dev/shm
Pour aller plus loin :
5 611 clics - Créé le 20/04/2010 par Tito - Modifié le 18/04/2012