{"id":1246,"date":"2012-02-18T21:53:46","date_gmt":"2012-02-18T19:53:46","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=1246"},"modified":"2012-02-18T21:53:46","modified_gmt":"2012-02-18T19:53:46","slug":"ramdisk-tmpfs-et-devshm","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2012\/02\/ramdisk-tmpfs-et-devshm\/","title":{"rendered":"Ramdisk, tmpfs et \/dev\/shm"},"content":{"rendered":"<p>Un <em>ramdisk<\/em> est un disque virtuel qui utilise une partie de la m\u00e9moire centrale de l&rsquo;ordinateur si on en croit <a href=\"http:\/\/fr.wikipedia.org\/wiki\/RAM_Disque\">Wikipedia<\/a>.<br \/>\nPar d\u00e9finition, les donn\u00e9es stock\u00e9es en RAM sont volatiles et donc un disque virtuel cr\u00e9\u00e9 dans la RAM ne perdurera que tant que l&rsquo;alimentation est pr\u00e9sente ou tant qu&rsquo;on ne d\u00e9monte pas le disque. En contrepartie, l&rsquo;avantage est une vitesse d&rsquo;acc\u00e8s aux donn\u00e9es tr\u00e8s rapide et sans commune mesure avec ce que l&rsquo;on peut avoir avec un disque dur.  <\/p>\n<p><em>tmpfs<\/em> (anciennement <em>ramfs<\/em>) est le nom du syst\u00e8me de fichier temporaire de Linux. Il est impl\u00e9ment\u00e9 directement dans le noyau depuis la version 2.6 de celui-ci. <\/p>\n<p><em>\/dev\/shm<\/em> est l&rsquo;impl\u00e9mentation d&rsquo;un syst\u00e8me de fichier temporaire de type <em>tmpfs<\/em>. Il est mont\u00e9 comme un disque dur mais les donn\u00e9es sont \u00e9crites en RAM. Le nom <em>shm<\/em> vient de <em>SHared Memory<\/em> car souvent utilis\u00e9 pour l&rsquo;\u00e9change de donn\u00e9es entre <em>process<\/em>.<\/p>\n<p>Si vous ouvrez un terminal et que vous y tapez <em>mount<\/em>, vous devriez y trouver une ligne du genre de celle-ci:<\/p>\n<pre class=\"codesource\">\r\n$ mount\r\n...\r\ntmpfs on \/dev\/shm type tmpfs (rw,nosuid,nodev)\r\n...\r\n<\/pre>\n<p>Notez que sous Ubuntu, <em>\/dev\/shm<\/em> est un lien vers <em>\/run\/shm<\/em>. <\/p>\n<p>Pour cr\u00e9er votre ramdisk, il suffit de faire quelque chose comme ceci:<\/p>\n<pre class=\"codesource\">\r\n$ mkdir \/ramdisk\r\n$ chmod 777 \/ramdisk\r\n$ sudo mount -t tmpfs -o size=512M tmpfs \/ramdisk\r\n<\/pre>\n<p>Ceci cr\u00e9e un r\u00e9pertoire appel\u00e9 <em>ramdisk<\/em>. On donne \u00e0 ce r\u00e9pertoire la possibilit\u00e9 d&rsquo;\u00eatre utilis\u00e9 par tous avec la commande <em>chmod<\/em> et pour terminer, on monte un syst\u00e8me de fichiers <em>tmpfs<\/em> dans ce r\u00e9pertoire.<br \/>\nC&rsquo;est tout.<br \/>\nVous pouvez maintenant vous servir de ce r\u00e9pertoire <em>ramdisk<\/em> pour y stocker ce que vous voulez comme un r\u00e9pertoire normal avec la diff\u00e9rence que les donn\u00e9es stock\u00e9es dedans sont \u00e9crites dans la m\u00e9moire au lieu du disque dur.<br \/>\n<H3>Usages<\/h3>\n<p>On a vu plus haut qu&rsquo;un <em>ramdisk<\/em> permettait de gagner en vitesse d&rsquo;\u00e9criture et de lecture par rapport au disque dur. On aura donc int\u00e9r\u00eat \u00e0 utiliser un <em>ramdisk<\/em> lorsqu&rsquo;une application doit lire et\/ou \u00e9crire de nombreux fichiers temporaires. C&rsquo;est typiquement le cas des compilations de code source mais il y a un cas beaucoup plus courant pour la plupart d&rsquo;entre nous; les navigateurs comme <em>Chromium<\/em> ou <em>Firefox<\/em> utilise un r\u00e9pertoire cache dans lequel de nombreux fichiers temporaires sont lus et \u00e9crits lors de nos surfs sur Internet.<br \/>\nPar exemple, si vous voulez que le r\u00e9pertoire cache de <em>Firefox<\/em> se trouve sur <em>\/dev\/shm\/firefox<\/em>, lancez Firefox, tapez dans la barre d&rsquo;adresse <em>about:config<\/em>, modifiez les clefs suivantes pour qu&rsquo;elles aient la bonne valeur:<\/p>\n<pre class=\"codesource\">\r\nbrowser.cache.disk.enable   true\r\nbrowser.cache.memory.enable   false\r\n<\/pre>\n<p>Et ajoutez la clef suivante si elle n&rsquo;existe pas:<\/p>\n<pre class=\"codesource\">\r\nbrowser.cache.disk.parent_directory   \/dev\/shm\/firefox\r\n<\/pre>\n<p>Lorsque vous relancerez <em>Firefox<\/em>, il utilisera le cache en RAM que vous lui avez indiqu\u00e9.<\/p>\n<p>Vous avez maintenant en main toutes les informations n\u00e9cessaires pour utiliser au mieux un disque virtuel en RAM. Faites-en bon usage.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un ramdisk est un disque virtuel qui utilise une partie de la m\u00e9moire centrale de l&rsquo;ordinateur si on en croit Wikipedia. Par d\u00e9finition, les donn\u00e9es stock\u00e9es en RAM sont volatiles et donc un disque virtuel cr\u00e9\u00e9 dans la RAM ne perdurera que tant que l&rsquo;alimentation est pr\u00e9sente ou tant qu&rsquo;on ne d\u00e9monte pas le disque. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23,22,5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1246"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=1246"}],"version-history":[{"count":2,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1246\/revisions"}],"predecessor-version":[{"id":1248,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/1246\/revisions\/1248"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=1246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=1246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=1246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}