Crea un “RAMDisk” en tu distribución Linux

Icono RAMDisk

Como sabes, la velocidad de acceso de una memoria es muy importante. Los cuellos de botella generados antaño entre las memorias magnéticas y los procesadores hicieron que se tuviese que incluir una memoria intermedia más rápida, la RAM. Después, con el avance de los microprocesadores vino la cache, aun más rápida para ofrecer una memoria intermedia entre la RAM y los registros de la CPU. Más recientemente han aparecido los discos duros SSD, que son más rápidos que los HDD magnético-mecánicos al estar basados en memoria flash.

Gigabyte pensó hace unos años en crear un disco duro con RAM (un RAMDisk denominado i-RAM), una memoria muy rápida en comparación con los discos duros, pero ocurrió algo parecido a lo que le pasó a Ageia con su tarjeta PhysX. No llegaron a cuajar demasiado y terminaron desapareciendo del mercado, y ahora con los SSD (y los SSD basados en RAM) tiene aun menos sentido. ¿Y de qué trata? Pues básicamente es utilizar memoria RAM para almacenar datos como si de un disco duro se tratase, así el acceso es mucho más veloz.

Pues bien, no hace falta que tengas un i-RAM ni un SSD, ni nada por el estilo para acelerar las transferencias y los accesos de los directorios, ficheros o programas que desees. Para eso se puede crear un RAMDisk en tu distro Linux. El único requisito es disponer de RAM suficiente, >4GB recomendado, para reservar un trocito de ésta para utilizar como “disco duro” ultra rápido. Algo así como lo que hacían algunas GPUs para equipos portátiles con la Share Memory, pero en este caso destinada a tus datos.

Para crear esta memoria, debes calcular de la memoria que dispones, ya que si la agotas toda o gran parte de ella te quedarás sin RAM para los fines para los cuales ha sido creada y será una estupidez. Por ejemplo, si dispones de 8GB de RAM, podrías coger 2GB para el RAMDisk. Vuelvo a repetir, lo suyo es que tengas más RAM, si cuentas con 2GB o 4GB tal vez no te merezca la pena… (recuerda en “size=” especificar el tamaño, en mi ejemplo he optado por 1024MB, es decir, 1GB, o también puedes usar “G” en vez de “M” para especificarlo en GB) Una vez sepas esto, nos ponemos manos a la obra con los siguientes pasos desde tu terminal:


mkdir /tmp/ramdisk

mount -t tmpfs none /tmp/randisk -o size=1024M

Ahora ya tienes reservado 1GB en tu RAM para que puedas añadir lo que quieras  al directorio ramdisk que hemos creado. Haz pruebas de rendimiento y verás como es más rápido todo lo que tengas metido en él… Si deseas, puedes crear la partición en tu RAM con otro sistema de ficheros diferente a tmpfs, como por ejemplo ext4 o ramfs.

Y si deseas que la entrada de montaje permanezca… ¡¡Ojo!! los datos que guardes aquí si apagas el PC o reinicias sí se perderán, pero la entrada seguirá para que no tengas que crear la partición con cada inicio con el siguiente truco para añadirla a la tabla (fstab) de particiones para que se cree automáticamente (usa tu editor de texto favorito para editar la entarada: vi, nano, gedit…):


gedit /etc/fstab

Y en el fichero de texto que se abre crea la siguiente entrada sin comillas "tmpfs /mnt/ramdisk tmpfs nodev, nosuid, noexec, nodiratime, size=1024M 0 0"

IMPORTANTE: Recuerda que tus datos desaparecerán cuando reinicies o apagues el equipo, puesto que la RAM es una memoria volátil. Por eso, lo que quieras conservar, hazle una copia en una partición del disco duro.


7 comentarios

  1.   mauricio dijo

    Tengo una duda, una vez que apaguemos el equipo, los datos ¿van a seguir estando en la memoria?. Digo esto ya que la memoria RAM es volatil. Te agradeceria que me explicaras eso.

    1.    Isaac P. E. dijo

      Hola,

      Tienes razón, se me olvidó comentar en el artículo que al ser volátil se borrará cada vez que inicies el equipo. Gracias por recordarmelo, lo he añadido ya. Es algo muy importante que no debería pasarse por alto para que nadie pierda sus datos.

      Saludos y espero haberte ayudado. Gracias!!!

      1.    mauricio dijo

        Lo que estuve viendo es que existen programas que hacen esta particón. Lo que hacen estos programas es crear una imagen en el disco rigido de los datos que estan en la memoria RAM para que cuando reiniciemos no se pierdan. Luego al iniciar el sistema, segun tengo entendido, los datos guardados en el disco rigido se vuelcan en la memoria RAM para que podamos usarlos nuevamente. Gracias por la nota y por haber respondido rapido! Saludos!

  2.   Leopoldo Cantillo dijo

    Interesante, es de pensar algunas aplicaciones practicas, un script que cree esta partición RAM al inicio y cargue ficheros de interés, no se… servirá poner una base de datos … ? hay que investigar el tema… gracias por la nota.

  3.   Sultanovich dijo

    es posible que solo funcione detallando el fs. En mis pruebas solo ha funcionado de la siguiente manera:

    mount -t tmpfs tmpfs /tmp/ramdisk -o size=300m

  4.   Ismael dijo

    Increíble, las magnificencias que se puede hacer con GNU/LINUX. :)

  5.   Jimmy Olano dijo

    ¿Qué tal si usamos esa RAMDisk para la partición “tmp”?

    De poder, se pude, habrá que echar código, no pregunto por el código PREGUNTO POR LA PRACTICIDAD DEL ASUNTO, DARLE USO. Acoto que para las bases de datos, si bien recuerdo, ya existe una opción para apoyar tablas de bases de datos en memoria RAM, ejemplo: https: // dev.mysql.com/doc /refman/5.5/en/ storage-engine-setting.html

Escribe un comentario