En ocasiones la velocidad de nuestro disco duro lo es todo para lograr una experiencia óptima utilizando nuestro PC. Es por esto que yo jamás compraría un ordenador nuevo que no tuviese un disco duro SSD rápido instalado. Los discos SSD son lo mejor que le ha pasado a la industria del PC en décadas, y pueden hacer que tu ordenador con 5 o 6 años y un disco convencional (HDD), solo por ponerle un SSD parezca un ordenador (casi) nuevo.
Pero, aunque los SSD son muy rápidos, ¿sabes qué es más rápido todavía? La memoria RAM de tu ordenador.
Por eso, en ocasiones, puede ser muy útil poder crear un disco duro "hecho" de memoria RAM y aprovechar su velocidad extrema con programas que deben crear muchos archivos temporales constantemente, instalar en ellos un juego o un programa que necesita leer y escribir información a toda velocidad, etc. Abrir cualquier archivo o cargar una aplicación que esté instalada en él será instantáneo. Otra utilidad muy interesante es crear un disco para crear bases de datos temporales (como tempdb
en SQL Server), lo que puede acelerar mucho ciertos tipos de operaciones. Las aplicaciones son muchas, variadas y normalmente avanzadas.
Windows lo verá como un disco duro normal y corriente, pero estará creado utilizando parte de tu memoria RAM disponible:
Esta virguería es posible conseguirla gracias al uso de software especial que enseguida te voy a contar. Pero antes un par de advertencias:
- El disco reservará parte de tu RAM para poder ser creado y trabajar con él. Esto implica, lógicamente, que esa RAM no estará disponible para otros programas. Así que para sacarle partido, o bien creas discos pequeños (a veces pueden ser suficientes) o debes tener un ordenador con mucha RAM (mi portátil por ejemplo tiene 16GB, y eso me parece el mínimo hoy en día para el equipo de un desarrollador, así que no deberías tener problema de crear algún disco de varios GB).
- La memoria RAM es volátil. Es decir, si se te va la corriente o se produce un "pantallazo azul de la muerte", pierdes todo lo que tuvieras dentro. El software que te voy a describir a continuación permite almacenar los contenidos de la imagen a disco y recuperarlos al reiniciar, pero si se va la luz de golpe y no tienes batería no te valdrá de mucho. De todos modos a mi no me gusta usar esa opción porque ralentiza el cierre y el inicio del sistema mientras se sincroniza la imagen o se carga respectivamente.
Vamos a ver cómo crearlos...
Cómo crear un disco duro RAM en Windows 10
En esta ocasión vamos a usar un mítico programa Open Source llamado ImDisk Toolkit, creado por el desarrollador sueco Olof Lagerkvist.
Lo primero que tienes que hacer es descargarte el ZIP de la versión para tu sistema operativo (normalmente la de 64 bits) desde la página del programa en SourceForge (ver enlace anterior en el nombre del programa). Ojo, la descarga tarda unos segundos en iniciarse porque SourceForge pone algo de publicidad mientras esperas.
Una vez descargado debes descomprimir el ZIP a cualquier carpeta de tu equipo y lanzar la instalación haciendo doble clic sobre el archivo .bat que encontrarás en la carpeta descomprimida. Eso lanzará el programa de instalación que, como verás, es muy sencillo en cuanto a sus opciones:
Fíjate en que está disponible en español (aunque la traducción tiene algunas faltas: yo prefiero instalarlo en inglés). Tan solo debes elegir la ubicación donde instalarlo, y marcar las opciones que desees. Al pasarles por encima con el cursor te dicen para qué sirve cada una, pero puedes dejar las que te muestro en la imagen, e incluso desmarcar la segunda de la "Librería DiscUtils" si no tienes pensado crear imágenes a partir del contenido de carpetas para luego cargarlas en un disco RAM.
Al darle al botón Instalar
, en medio segundo más o menos quedará listo y verás una pantalla de confirmación como esta:
Ahora ya tendrás el programa en tu menú de inicio, junto a varias utilidades que trae:
El programa de configuración realmente tiene poca utilidad más allá de activar/desactivar los menñus contextuales para montar discos en memoria o crear imágenes de carpetas, o para quitar ciertas letras de unidad para que no puedas elegirlas a la hora de crear las unidades:
La manera de crear un disco RAM es a través del programa Configurar RamDisc
. Esto abre una diálogo para configurarlo que consta de 3 pestañas, aunque la que vamos a utilizar en el 99% de los casos es la de ajustes básicos:
Como ves, lo único que tienes que hacer es elegir el tamaño de tu disco duro creado sobre la RAM en KB, MB o GB, y poco más. Estas son las opciones:
- La opción de
Asignar memoria dinámicamente
es muy interesante porque solo usa memoria a medida que la va necesitando, en lugar de reservarla toda de golpe. Así, puedes crear un disco incluso mayor que la memoria disponible, aunque te "petaría" si la superas, claro. Además, el hecho de crear dinámicamente le resta algo de velocidad, así que yo no marco nunca esta opción.
- Le asignas una letra de unidad que esté libre, y será la letra con la que se verá en el explorador de archivos y que verán las aplicaciones.
- Por defecto lo formatea con NTFS, pero puedes hacerlo con FAT, FAT32 o exFAT (probablemente solo te convenga si vas a crear una unidad mayor de 32GB).
- Si marcas la opción de
Lanzar al inicio de Windows
, aunque reinicies tendrás disponible siempre la unidad (más sobre esto luego).
- La opción para crear una carpeta temporal, lo que hace es crear una carpeta
_Temp
en la raíz de la nueva unidad y cambiar las variables de entorno de Windows para que todos los archivos temporales se guarden en ella. Úsalo solo si este es el propósito de haber creado tu disco en memoria, si no déjalo sin marcar.
Una vez has marcado o desmarcado las opciones que te interesen, dale al botón OK
y en unos segundos tendrás creada y formateada una nueva unidad de disco, del tamaño elegido, que ¡está trabajando contra la RAM de tu equipo!
Nota: seguramente te saltará un diálogo de elevación de privilegios para poder hacerlo, así que deberás tener permisos de administración en la máquina.
Se mostrarán automáticamente sus propiedades, que son como las de cualquier otro disco duro (en este caso he creado una de 100MB para pruebas):
IMPORTANTE: si tienes configurado Windows para hacer uso del inicio rápido del sistema (cosa que es bastante interesante en general, aunque yo jamás lo apago salvo para instalar actualizaciones) te saltará un dialogo como el siguiente cuando vayas a crear la unidad en memoria:
Lo que te está diciendo es que si tienes el arranque rápido activado, cuando apagues el equipo lo que ocurrirá es que la RAM se escribirá toda a disco par luego restaurarla en el próximo arranque, por lo que la sincronización del contenido del disco a una imagen no funcionará. Si te preocupa perder datos entre reinicios, deberías desactivar el inicio rápido de Windows (dale al botón que te muestra ese diálogo y te abre la configuración necesaria). Si solo vas a usar el disco para archivos temporales o no te importa perder algo de información, puedes dejarlo así.
Bueno, ahora ya tienes tu disco duro en memoria montado y listo para ser utilizado como cualquier disco convencional.
Vamos a comprobar cómo de rápido es. Para esto he utilizado el famoso programa de verificación de rendimiento de discos duros Crystal Disk Mark del desarrollador japonés Noriyuki Miyazaki. La probé primero en el disco duro SSD de mi portátil, y luego en el disco duro RAM. Según el tipo de lectura o escritura que se haga las mejoras de rendimiento van de casi imperceptibles a 11 veces más rápido en función del tipo de lectura y escritura que se haga al disco, consiguiendo al menos 3 veces más rendimiento en la mayoría de los casos, así que no está nada mal:
Cuando no quieras usar el disco RAM más, puedes desmontarlo. Para ello, desde el mismo programa con el que lo creaste, selecciona la letra de la unidad y el botón ahora pondrá Desmontar
estará habilitado. Al darle saltará un diálogo como este:
que te pregunta si quieres almacenar los contenidos del disco en memoria como una imagen a disco, para poder preservar sus contenidos. Si le dices que sí te permitirá crear un archivo .img
y persistir así lo que tengas en él.
Este tipo de imágenes se pueden montar luego automática o manualmente a nuevas unidades RAM, y mantenerlos sincronizados si así lo deseamos.
Si vas a la pestaña Datos
antes de montar una unidad RAM verás que puedes indicarle un archivo de imagen (que puede ser incluso un disco virtual .vhd
o un .iso
), de modo que tengas sus contenidos disponibles en la nueva unidad:
Puedes además sincronizarlo automáticamente al apagar el equipo (por ejemplo, en un servidor cuando se reinicie tras una actualización), de modo que no pierdas nunca los contenidos del disco, e incluso sincronizarlo a mano cuando quieras desde esta pestaña.
Finalmente en la pestaña Avanzado
puedes tocar algunos parámetros complejos, como el tamaño de los clústeres de disco, la compresión NTFS o el uso de AWE (Address Windowing Extensions) para poder crear discos grandes en sistemas Windows de 32bits (que están limitados a usar solo 4Gb de RAM aunque haya más memoria disponible. Necesitas que tu licencia de Windows 32 permita acceder a esa memoria adicional con AWE, y no deberías usar Imdoskc en un sistema de 32bits de todos modos...), montar el disco en una carpeta en lugar de como una unidad con una letra asignada o pasar parámetros adicionales avanzados:
En el 99,9% de los casos no tocarás esta pestaña para nada.
Nota: si usas este programa para crear discos RAM y le sacas mucha utilidad o los utilizas empresarialmente, por favor, dónale algo a Olof para poder mantener el desarrollo, ya que los certificados para poder firmar los drivers cuestan un pastón al año y redundará en tu interés para que saque más versiones en el futuro.
Desinstalar ImDisk
Si en un momento dado no quieres utilizar más esta utilidad, puedes desinstalarla desde el panel de control del sistema, como cualquier otro programa, a pesar del programa de instalación tan sui generis que tiene:
En resumen
El uso de discos duros montados directamente sobre memoria RAM permite disponer de unidades de disco ultrarrápidas que podrás utilizar para leer y escribir archivos temporales más rápido, ejecutar aplicaciones a la máxima velocidad, crear espacios para bases de datos temporales que acelerarán tu aplicación, etc... En este artículo te he contado cómo puedes crearlos y administrarlos, sus pros y sus contras y cómo persistirlos a disco y restaurarlos automáticamente o de manera manual.
¡Espero que te haya resultado útil!