Système de fichiers en mémoire vive linux
Les ordinateurs ont tous un processeur rapide, de la mémoire rapide mais ce qui handicape le plus un système : son disque dur (c’est pour cela d’ailleurs que les SSD sont développées et des disques durs plus rapides que jamais) mais avec des disques traditionnels nous ne pouvons atteindre la vitesse de lecteur/écriture de la mémoire vive du système.
Il peut être utilise de créer un système de fichiers temporaire aussi pour simplement stocker un fichier, récupérer un bout de ce fichier pour travailler mais sans avoir besoin de la totalité du fichier (ou d’une multitude de fichiers). Il peut être judicieux d’utiliser des systèmes de fichiers « volatiles » lorsque l’on utilise du système embarqué afin d’éviter les lectures/écritures en permanence afin d’allonger la durée de vie d’une carte CompactFlash.
Nous allons monter un système de fichier temporaire (type tmpfs) dans /mnt/ram pour monter un système de fichiers en mémoire vive nous utiliserons la commande mount:
# mkdir /mnt/ram # mount -t tmpfs -o size=100M none /mnt/ram
Notre système temporaire est bien monté en mémoire vive (vérifiez-le avec la commande mount)
# mount ... none on /mnt/ram type tmpfs (rw,size=100M)
Pour le démonter assurez-vous que volume n’est pas utilisé puis tapez ceci :
# umount /mnt/ram
Le contenu de la mémoire vive est perdu en cas de coupure de courant/extinction de la machine. Vous devez impérativement sauvegarder les données qui y sont contenues sur le disque dur si vous souhaitez redémarrer la machine et les retrouver après 😉
Bonjour,
Ces commandes fonctionnent, mais si j’exécute une boucle qui écrit 100.000 points ( « . » ) dans un fichier, j’ai un gain de temps quasi nul (moins de 10%) en générant ce fichier dans /mnt/ram/ au lieu d’un dossier normal du disque dur. Auriez-vous une idée de la cause d’un gain si modeste, svp ?
reBonjour,
Pour ceux que ça intéressent, on a répondu à ma question sur un autre site : à priori mon gain est minime car le fichier dans le « dossier normal » est en fait généré sur le cache du disque dur, qui est quasiment aussi rapide que la RAM. Donc je ne verrai la différence de vitesse entre les 2 méthodes que si ma génération de fichiers est telle que le cache du disque dur fini par saturer.
Salut,
désolé du retard de la réponse ici, j’étais occupé. En effet la réponse est juste, tu verras une différence lorsque tu créé un fichier qui va commencer à occuper une taille plus importante 😉
Quand tu commences à t’amuser avec des fichiers de 30Mo ca commence à être sympa.
Bonne journée