En utilisant ramfs ou tmpfs, vous pouvez allouer une partie de la mémoire RAM physique à utiliser comme partition. Vous pouvez monter cette partition et commencer à écrire et à lire des fichiers comme une partition de disque dur. Puisque vous lirez et écrirez dans le RAM, ce sera plus rapide.
Lorsqu’un processus vital devient radicalement lent à cause des écritures de disque, vous pouvez choisir des systèmes de fichiers RAMFS ou TMPFS pour écrire des fichiers dans la RAM.
C’est un bon moyen pour optimiser vos applications.
Dans ce tutoriel, je vous montre comment créer un disque RAM en tmpfs ou en ramfs.
Table des matières
Introduction
Créer un disque RAM peut avoir plusieurs intérêt, en général, il s’agit de mettre en place le cache d’une application en mémoire.
Par exemple, vous pouvez mettre le cache nginx dans un disque RAM. J’en parle dans le tutoriel : Optimiser le cache de Nginx
Avant de commencer, je vous conseille de lire le tutoriel suivant afin de bien comprendre le fonctionnement des disques RAM.
Comment créer un disque RAM tmpfs sur Linux
La création d’un disque virtuel tmpfs est très simple.
Tout d’abord on créé le point de montage, par exemple /mnt/ramdisk.
Puis on utilise la commande mount pour monter le disque RAM. On utilise :
- -t pour spécifier le type de système de fichiers, ici donc, tmpfs
- -o size pour indique la taille du disque virtuel. Dans notre exemple 512 mo
- Puis la source tmpfs (/dev/tmpfs) et le point de montage
sudo mkdir -p /mnt/ramdisk
sudo mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk
Pour rendre actif le disque RAM, on modifie le fichier /etc/fstab :
tmpfs /mnt/ramdisk tmpfs defaults,size=512m 0 0
A partir de là, le disque virtuel est actif à chaque démarrage.
Vous pouvez ensuite modifier la configuration de votre application pour utiliser ce dernier comme emplacement de cache.
Comment créer un disque RAM ramdisk sur Linux
Dans Linux, les périphériques de bloc RAM se trouvent dans /dev/ram.
Vérifiez leurs existences avec la commande ls :
ls -l /dev/ram*
brw-rw---- 1 root disk 1, 0 Feb 8 2015 /dev/ram0
brw-rw---- 1 root disk 1, 1 Feb 8 2015 /dev/ram1
brw-rw---- 1 root disk 1, 2 Feb 8 2015 /dev/ram2
brw-rw---- 1 root disk 1, 3 Feb 8 2015 /dev/ram3
Si vous ne voyez pas de périphériques de bloc RAM, vous devrez créer un nouveau périphérique de bloc RAM et modifier le propriétaire avec la commande chown.
Pour créer un nouveau périphérique de bloc de dev / Ram0, utilisez la syntaxe suivante.
sudo mknod -m 660 /dev/ram0 b 1 0
sudo chown root:disk /dev/ram0
Enfin on monte le disque RAM dans /mnt/ramdisk avec la commande mount :
sudo mkdir -p /mnt/ramdisk
sudo mount /dev/ram0 /mnt/ramdisk
Comme indiqué dans le tutoriel La différence entre un disque RAM tmpfs et ramfs, l’un des inconvénients de RAMFS est qu’il se développera dynamiquement.
Il va donc continuer à y écrire des données jusqu’à ce que vous remplissiez toute la mémoire.
Ainsi, vous devez vous assurer que les processus qui écrivent des données à la partition RAMFS utilisent uniquement une quantité fixe d’espace RAM.
Pour limiter la taille d’un disque RAMFS, utilisez les paramètres MaxSize de la commande mount.
Montons /dev/ am0 à /mnt/ramdisk et spécifions la taille du système de fichiers à 4 Mo. Le système de fichiers utilisé est RAMFS.
mount -t ramfs -o size=4M,maxsize=4M dev/ram0 /mnt/ramdisk
Pour limiter la taille d’un disque RAMDisk, vous pouvez le formater le disque virtuel avec mkfs.
Ici nous formatons en ext2 car la journalisation de ext3 ou ext4 n’est pas nécessaire.
sudo mkfs -t ext2 -q /dev/ram0 4M
Si vous souhaitez monter le disque RAM pendant le temps de démarrage, vous pouvez saisir les détails dans le fichier /etc/fstab. Cette approche n’est applicable que si vous montez l’appareil à l’aide du système de fichiers RAMFS. Cela signifie que vous ne pouvez pas spécifier la limite de taille du système de fichiers.
Pour monter un disque RAM avec une taille initiale de 4 Mo, ajoutez la ligne suivante au fichier /etc/fstab.
/dev/ram0 /mnt/ramdisk ramfs size=4M
Pour monter un disque virtuel ramfs au démarrage, vous devez exécuter un script (par exemple dans /etc/rc.local ou équivalent) qui formate la partition à chaque démarrage :
mkfs -t ext2 -q /dev/ram0 4M
[ ! -d /mnt/ramdisk ] && mkdir -p /mnt/ramdisk
mount /dev/ram0 /mnt/ramdisk
Liens
- NTFS, EXT4 : les systèmes de fichiers Windows et Linux
- Inode dans Linux : qu’est-ce que c’est et comment les afficher
- fstab Linux : fonctionnement, structure et exemples
- mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
- Comment vérifier l’espace disque avec la commande DF et DU sur Linux
- mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux
- La commande lsblk : utilisations et exemples
- fdisk/gfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- cfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- Formater une partition de disque ou clé USB sur Linux Ubuntu
- GParted : redimensionner (agrandir/réduire) une partition de disque
- Comment créer un disque RAM tmpfs ou ramfs sur Linux
- Monter un partage Windows sous Linux avec Samba
- Dr.Parted Live : Live USB récupération de données et utilitaires de disque