Skip to main content
Crucial SSD MX300

Acelera tu disco duro secundario con SSD caching

Actualmente hasta los ordenadores preconfigurados empiezan a tener SSD de serie. Normalmente se recomienda que el SSD se utilice para instalar windows y los programas más esenciales. Con esto, se disfruta de tiempos de arranque mucho mejores y los programas habituales también reaccionan de forma casi instantánea. Aún así, se sigue teniendo un disco duro mecánico, más grande y más lento, para cosas secundarias como la biblioteca de juegos. El disco duro mecánico sigue siendo al fin y al cabo el rey en coste por giga de almacenamiento. No así en rendimiento, que puede llegar a desesperar sobre todo en tiempos de acceso aleatorios comparado con un SSD. Un día dándole vueltas a esto, me puse a buscar soluciones para acelerar ese disco duro secundario y acabé encontrando unas cuantas. Tiering, caching, ramdisk… Aquí explicaré cuál he acabado eligiendo, por qué y los resultados que me he encontrado.

Caching vs Tiering vs Ramdisk

Estos términos fueron de las primeras soluciones que me encontré para acelerar el almacenamiento secundario. Todos tienen ventajas y desventajas y al final acabé optando por el que más me convenía a mi.

Tiering es mover datos frecuentemente o recientemente usados de un medio de almacenamiento más lento a uno más rápido. Tiene como ventaja que se aprovecha más el espacio porque no tienes datos duplicados en varios discos duros pero como desventaja está que si se te rompe el SSD que utilizas para tiering, los datos que contenía los pierdes. Windows 10 tiene integrado este sistema, por si te animas a probarlo. La solución de AMD llamada StoreMI también entra en este bloque.

Ramdisk es utilizar un trozo de memoria RAM para acelerar los accesos a ese disco secundario. Este es el método al que más pegas le veo. La memoria RAM es escasa y cara con lo que no me merecía la pena utilizarlo para esto. Además, la RAM se borra cuando apagas el ordenador y tendría que volver a rellenarse en cada reinicio para que empiece a ser efectiva. Eso, o configurarlo para que se vuelque ese trozo de ramdisk en el disco secundario antes de apagar el ordenador y volver a cargarlo con el reinicio. Acabarías teniendo un apagado y encendido más lentos y esto tampoco me hacía gracia.

Caching es similar a tiering, pero en vez de mover datos al almacenamiento más rápido lo que haces es copiarlos. La velocidad de acceso a esos datos es la misma que con tiering pero aquí si se rompe el SSD que utilizas para cachear los datos, no pierdes nada. Por contra, el espacio que utilizas de caching es espacio que no puedes aprovechar porque contiene los datos duplicados a acelerar.

Elegimos caching. ¿Y ahora?

Lo primero que vi para caching es el Intel RST. Esta aplicación la proporciona Intel de forma gratuíta pero analizando lo que ofrecía vi que no se ajustaba a lo que necesitaba. Intel RST te limita a instalar el sistema operativo en el almacenamiento secundario a acelerar y no por ejemplo en otro SSD. Tampoco es compatible con muchos chipsets y configuraciones de hardware.

Seguí buscando y acabé en un programa llamado Primocache. Tenía una versión de prueba para no tener que pagar los 30 dólares a ciegas y no parecía tener limitaciones específicas de hardware, instalaciones, chipsets ni nada que sonase raro. Así que me puse a ello.

Lo primero que hice fue una partición de 32 gigas en el SSD de 128 gigas que utilizo para el sistema operativo. La prueba fue lo suficientemente bien como para animarme a dar el siguiente paso que comentaré más adelante. El siguiente paso vino porque la forma en la que hice esta primera prueba tenía como problemas que 32 gigas se quedaban cortos y la partición no la hice del todo bien. Con ese espacio de caché la tasa de aciertos no era todo lo alta que me gustaría. Las particiones también me quedaron desalineadas y eso en un SSD es un problema ya que te reduce la velocidad y da problemas de amplificación de escritura que a la larga reducen la vida útil del SSD.

Como el sistema operativo lo tengo en un SSD de una marca de cierta reputación y los datos secundarios los tengo respaldados en copias de seguridad, no tenía necesidad de gastar mucho dinero en un SSD que lo iba a acabar usando de caché e iba a estar medio oculto en el ordenador. Así que compré el SSD de 64 gigas más barato de aliexpress. Un KingSpec (sí, esa es la marca) modelo MT-64.


kingspec MT-64
SSD marca “nisu”

Qué decir de este KingSpec MT-64. Es uno de esos SSD en los que la marca se esfuerza por borrar el fabricante original de los chips de memoria flash, probablemente porque son rechazos de fábrica que nadie más quiere. La controladora más que de gama baja es de gama ínfima. La unidad es también “dramless”, o sin memoria RAM para poder usarla como caché. Sin esa RAM, el SSD tendrá tiempos de acceso para consultar tablas de datos peores que SSD con memoria RAM. Tampoco podrá tener esa caché para traducir las direcciones Cilindro – Pista – Sector que Windows usa para los almacenamientos secundarios en Bloques que usan internamente los SSD. También su rendimiento se va a ver muy afectado cuando empiece a llenarse porque no va a tener un espacio extra para reordenar datos o hacer TRIM. Todo esto también hace que la amplificación de la escritura en estos SSD sea un problema mayor que en los que sí tienen RAM. Pongo aquí un test en donde podrás ver que los accesos aleatorios no son nada del otro mundo. Aunque no siendo nada del otro mundo, siguen siendo órdenes de magnitud superiores a un disco mecánico. De ahí que compense usar esto para caché de esos tipos de almacenamiento. Por muy lento que sea un SSD, seguirá siendo mucho más rápido en accesos aleatorios a un disco mecánico.

Test Kingspec MT-64 Crystaldiskmark
Test Kingspec MT-64 Crystaldiskmark

La velocidad de escritura secuencial también es extrañamente baja, probablemente por la mala calidad de la memoria flash y porque el fabricante no se habrá molestado en meter algún tipo de caché SLC. Pero como con Primocache vamos a usar el SSD exclusivamente como caché de lectura, esa velocidad de escritura no me va a afectar.

Pero bueno, es barato. En según qué casos un SSD de marca desconocida dramless como este puede costar la mitad por giga que un SSD de marca conocida, con garantía y componentes de calidad. Ya es elección de cada uno qué comprar. En mi caso ya tenía un SSD normal para el SO y programas habituales con lo que decidí comprar este para caché. Esto es un poco como ese mercado gris que hay con monitores coreanos de marcas desconocidas que se venden en ebay tirados de precio.

Nos metemos con Primocache

La interfaz que se nos presenta de inicio es más intuitiva de lo que cabría esperar de algo que yo consideraba nicho como es el usar un SSD de caché para almacenamiento secundario.

Ventana principal de Primocache
Ventana principal de Primocache

Tenemos arriba los botones para crear bancos de caché, gestionar cachés existentes, quitar y añadir discos a esas cachés, etc.

En el medio está la representación visual del disco secundario que se está cacheando y a qué tarea de caché está asignado. En mi caso, un disco mecánico HGST de 7200rpm y 1 tera.

En la parte de debajo está la zona con indicadores sobre el funcionamiento de la caché. Cuánto de llena está, tasa de aciertos, tamaño total, lecturas y esctrituras totales sobre la caché… De aquí probablemente el indicador que más te interese sea el de la tasa de aciertos. Si es demasiado baja, puede que la cantidad de caché que estés usando sea algo escasa para tus necesidades.

Para configurar la caché esta aplicación tiene una especie de wizard con el que en un par de pasos lo configuras todo.

primocache wizard
primocache wizard

Hay que tener en cuenta eso sí, que este programa va a formatear la partición del SSD que se use de caché y no la podrás utilizar para ninguna otra cosa. Tras hacer ese formateo, esa partición del SSD dejará de estar visible en la parte de Dispositivos y unidades de Windows.

SSD Kingspec formateado para usarse como cache
SSD Kingspec formateado para usarse como cache

Tras seleccionar en el wizard el disco a acelerar y el que se va a usar de caché, se nos presenta la ventana que tal vez pueda tener algo de complejidad.

Ventana de configuración
Ventana de configuración

De la parte de caché de nivel 1 no he tocado nada porque sería para utilizar Ramdisk. Por las razones que he comentado al inicio de este artículo, no quería utilizar Ramdisk así que lo dejo a cero. La cache de nivel 2 es el SSD. Está ya seleccionado y el tamaño, lo máximo del SSD. El tamaño en mi caso personal seguramente lo acabe limitando a algo un poco menor que lo máximo del SSD para intentar minimizar problemas del dramless. El tamaño de bloque se puede dejar por defecto o se puede modificar. Lo ideal es que ese tamaño sea igual al del sistema de archivos del disco que se quiere acelerar. En mi caso es NTFS con sectores de 4KB. El problema también es que cuanto más pequeño es el tamaño de bloque a cachear, más sobrecarga vas a meter a la CPU de tu ordenador y más memoria RAM del sistema va a necesitar Primocache para gestionar la caché. Un punto medio en este indicador es lo que se recomienda para balancear lo positivo con lo negativo. En mi caso, 16KB funcionan bastante bien.

Poco más habría que hacer. Una vez configurado y en marcha, la propia aplicación se encarga de seleccionar los datos entre una combinación de LRU (Least Recently Used) y LFU (Least Frequently Used) para ir llenando la caché poco a poco. Hay que tener en cuenta que la primera vez que accedas a datos del disco mecánico no vas a notar un aumento de velocidad porque esos datos no estarán aún copiados en la caché. Es con el uso cuando la partición de caché empieza a llenarse. Pongo unos resultados de tiempos de carga al iniciar juegos con y sin caché para que te hagas una idea.

 Cache on vs off en AC: Odyssey, War Thunder, Battlefield 1 y Destiny 2
Cache on vs off en AC: Odyssey, War Thunder, Battlefield 1 y Destiny 2

Es en momentos como este cuando me doy cuenta de los tiempos de carga realmente largos que tenemos que aguantar a veces. Como ves, un SSD puede hacer milagros en algunos casos. Y esto es solo la carga inicial, que soluciones como Primocache también sirven para mejorar cargas entre pantallas o el streaming de objetos y texturas.

De la carga de videojuegos ten en cuenta que llega un punto en el que por muy rápido que sea tu almacenamiento, los tiempos de carga puede que no mejoren mucho más. En la carga de un juego intervienen más cosas aparte de leer del almacenamiento secundario como descompresión de texturas o compilar shaders. En cosas como estas, el procesador es más determinante que el almacenamiento secundario

Conclusión

Creo que el SSD de caché merece la pena. Igual si en tu caso tienes un SSD de digamos, 256 o 512 gigas te puedes ahorrar el paso de comprar otro SSD. Haces una partición bien alineada en ese mismo SSD y usas esa partición como caché.

Hay que tener en cuenta eso sí, que esto sigue siendo un almacenamiento de mucho menos espacio. No esperes que un SSD pequeño te pueda acabar acelerando el 100% del almacenamiento secundario el 100% del tiempo. De ahí la importancia de seleccionar los datos con LRU y LFU que hacen aplicaciones como Primocache.

La cantidad de caché a utilizar es algo que he comentado desde mi perspectiva personal porque depende un poco de cada uno. Hay gente que recomienda unos 128GB de SSD por cada TB de almacenamiento secundario. Para los usos que yo le doy, 128GB se me antojaban demasiados. Todo es probar y ver qué es lo que mas se amolda a cada uno.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.