Ceci est un article invité écrit par SathiyaMoorthy.
En utilisant ramfs ou tmpfs, vous pouvez allouer une partie de la mémoire physique à utiliser comme partition. Vous pouvez monter cette partition et commencer à écrire et à lire des fichiers comme une partition de disque dur. Comme vous allez lire et écrire dans la RAM, ce sera plus rapide.
Lorsqu'un processus vital devient considérablement lent en raison d'écritures sur disque, vous pouvez choisir les systèmes de fichiers ramfs ou tmpfs pour écrire des fichiers dans la RAM.
Les montages tmpfs et ramfs vous permettront de lire et d'écrire rapidement des fichiers depuis et vers la mémoire primaire. Lorsque vous testez cela sur un petit fichier, vous ne verrez peut-être pas une énorme différence. Vous ne remarquerez la différence que lorsque vous écrivez une grande quantité de données dans un fichier avec une autre surcharge de traitement telle que le réseau.
1. Comment monter Tmpfs
# mkdir -p /mnt/tmp # mount -t tmpfs -o size=20m tmpfs /mnt/tmp
La dernière ligne du df -k suivant montre le système de fichiers /mnt/tmp tmpfs monté ci-dessus.
# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 32705400 5002488 26041576 17% / /dev/sda1 194442 18567 165836 11% /boot tmpfs 517320 0 517320 0% /dev/shm tmpfs 20480 0 20480 0% /mnt/tmp
2. Comment monter Ramfs
# mkdir -p /mnt/ram # mount -t ramfs -o size=20m ramfs /mnt/ram
La dernière ligne de la commande de montage suivante montre le système de fichiers /mnt/ram ramfs monté ci-dessus.
# mount /dev/sda2 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) tmpfs on /mnt/tmp type tmpfs (rw,size=20m) ramfs on /mnt/ram type ramfs (rw,size=20m)
Vous pouvez monter ramfs et tmpfs au démarrage en ajoutant une entrée au /etc/fstab.
3. Ramfs contre Tmpfs
Ramfs et tmpfs font principalement la même chose avec quelques différences mineures.
- Ramfs va croître de manière dynamique . Vous devez donc contrôler le processus qui écrit les données pour vous assurer que ramfs ne dépasse pas la taille de RAM disponible dans le système. Disons que vous avez 2 Go de RAM sur votre système et créé un ramfs de 1 Go et monté en tant que /tmp/ram. Lorsque la taille totale de /tmp/ram dépasse 1 Go, vous pouvez toujours y écrire des données. Le système ne vous empêchera pas d'écrire des données de plus de 1 Go. Cependant, lorsqu'il dépasse la taille totale de la RAM de 2 Go, le système peut se bloquer, car il n'y a pas de place dans la RAM pour conserver les données.
- Tmpfs ne se développera pas de manière dynamique . Cela ne vous permettrait pas d'écrire plus que la taille que vous avez spécifiée lors du montage du tmpfs. Ainsi, vous n'avez pas à vous soucier du contrôle du processus qui écrit les données pour vous assurer que tmpfs ne dépasse pas la limite spécifiée. Cela peut donner des erreurs similaires à "Pas d'espace disponible sur l'appareil".
- Tmpfs utilise l'échange .
- Ramfs n'utilise pas d'échange.
4. Inconvénients de Ramfs et Tmpfs
Étant donné que ramfs et tmpfs écrivent dans la RAM du système, ils seront supprimés une fois le système redémarré ou planté. Vous devez donc écrire un processus pour récupérer les données de ramfs/tmpfs sur le disque à intervalles réguliers. Vous pouvez également écrire un processus pour écrire les données de ramfs/tmpfs sur le disque pendant que le système s'arrête. Mais cela ne vous aidera pas en cas de plantage du système.
Expérimentation | Tmpfs | Ramfs |
---|---|---|
Remplissez un maximum d'espace et continuez à écrire | Affichera une erreur | Continue d'écrire |
Taille fixe | Oui | Non |
Utilise Swap | Oui | Non |
Stockage volatile | Oui | Oui |
Si vous souhaitez que votre processus écrive plus rapidement, opter pour tmpfs est un meilleur choix avec des précautions concernant le plantage du système.
Cet article a été écrit par SathiyaMoorthy. Il travaille chez bksystems, s'intéresse à la rédaction d'articles et contribue à l'open source pendant son temps libre. The Geek Stuff accueille vos conseils et articles invités.