Linux : étendre la taille de votre ramdisk /tmp

Linux : étendre la taille de votre ramdisk /tmpPar défaut, sous Linux, le répertoire /tmp est monté comme un ramdisk de 1 Go. Ce répertoire stocke les fichiers temporaires utilisés par les différents logiciels qui s’exécutent dans votre système. Utilisant tmpfs depuis le noyau 2.6, il n’est d’ailleurs pas le seul ramdisk – ou disque virtuel – que votre système Linux utilise dynamiquement selon ses besoins. Ajoutez-y :

L’intérêt du tmpfs, contrairement au ramfs, c’est que vous pouvez lui fixer une taille maximale ! Il existe deux méthodes pour définir la taille de votre ramdisk /tmp.

Utilisation du fichier /etc/fstab

La 1ère technique qui marche, quelque soit la distribution Linux, est de modifier le fichier /etc/fstab en ajoutant la ligne suivante :

tmpfs /tmp tmpfs rw,size=512M,noexec,nodev,nosuid,noatime,mode=1777 0 0

Pour prendre à chaud les modifications apportées à votre fichier /etc/fstab, tapez à partir de la ligne de commandes :

mount -o remount /tmp

/lib/systemd/system/tmp.mount via systemd

Présent dans Fedora depuis la version 15, Systemd prend désormais en charge l’amorçage des principales distributions Linux en lieu et place du système SysVinit ou de Upstart utilisé dans Ubuntu.

Pour fixer la taille de votre ramdisk /tmp via systemd, vous devez éditer le fichier /lib/systemd/system/tmp.mount en modifiant la directive Options de la section [Mount] comme suit :

Options=rw,size=512M,noexec,nodev,nosuid,noatime,mode=1777

Pour prendre à chaud les modifications apportées à votre fichier /lib/systemd/system/tmp.mount, tapez à partir de la ligne de commandes :

systemctl daemon-reload
systemctl reload tmp.mount

Linux  / fstab Ramdisk ramfs Systemd sysvinit tmp tmpfs upstart 

Commentaires

Pour ma part, j’ai du mal à comprendre pourquoi /tmp en RAM.

En effet, /tmp est justement un répertoire mis à disposition du système pour poser des données temporaires qui ne peuvent pas être gardées en RAM (parce que trop grosses ou parce que c’est pas utile, que la RAM est chère et pas le disque, etc).

Il y a donc une contradiction, non ?

À noter que ces tmpfs ne sont pas des disques virtuels, mais des systèmes de fichiers en mémoire. La différence est importante, parce qu’un disque virtuel, ça occupe en permanence une quantité de mémoire correspondant à toute la taille, et ça porte un système de fichiers classique : c’est notamment le cas des ramdisks sous DOS. Au contraire un système de fichiers en mémoire comme tmpfs, ça n’occupe que la mémoire correspondant aux fichiers effectivement stockés dessus.

@Thomas, /tmp ne sert pas seulement pour les données qui ne peuvent pas être stockées en mémoire, mais aussi pour tous les cas où on a simplement besoin d’un fichier temporaire. En revanche, ces fichiers doivent être supprimés après utilisation !

@Thomas

Prenez le temps de lire la fiche Wikipédia consacrée à tmpfs. Le système utilise le swap quand il y a trop d’éléments dans le tmpfs.

@Elessar

Un système de fichiers en mémoire, ça s’appelle une RAM Drive ou une ramdisk. Sa gestion dynamique ne change rien quant à sa nature.

@Denis, je connais bien tmpfs, ce que je ne comprends pas c’est l’intérêt de mettre /tmp en RAM. Quelle est l’idée ? Quel gain ?

@Thomas

Disque dur : 10 millisecondes.
RAM : 10 nanosecondes.

@Denis, personnellement, quand on me parle de ramdisk, je pense à disque virtuel en mémoire, c’est à dire un périphérique bloc émulé et stocké en mémoire, sur lequel on irait mettre un système de fichiers normal. C’est ce qui se fait sous DOS autant que je sache. Là, il n’y a aucune émulation de périphérique bloc, mais un système de fichiers spécialisé en mémoire.

Laisser un commentaire

(requis)

(requis)