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.

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.

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.

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.

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.

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.

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.

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.
Buenas,interesante articulo.
Me gustaria hacer un pequeño comentario , aunque creo que para el uso que tu has propuesto «podria» ser anecdotico ,pero aun asi util para cosas como navegadores web.
Es relativo a la ramdisk , como bien comentas para lo que buscas no es la mejor idea,pero aun asi yo recomendaria crear una : para meter los archivos temporales del sistema operativo,del navegador..
Es una manera de acelerar las cosas y creo que si vas a usar un ssd ,evitar que se estropee con tanta escritura (en especial con la de los navegadores web).Pero como comente antes,en tu caso el beneficio seria ¿¿minimo??.
Disculpa,segun empece a escribir esto,me he parado un rato dandole vueltas y no termino de estar seguro que el beneficio sea solo para navegar : yo estoy proponiendo usar el ramdisk para archivos desechables que crea constantemente el sistema operativo,los navegadores web y otras aplicaciones diferentes a juegos (juegos a parte por el gran tamaño que ocupan ),por lo que puede que pudiera ser tambien un complemento ideal a lo que propones.
En el caso de windows 10 ,es horrible la cantidad de ficheros que crea y borra constantemente ,en concreto en las carpetas :
c:\Users\CASA\AppData\Local\Temp\
c:\Windows\CbsTemp\
c:\Windows\WinSxS\Temp\
)
Me he actualizado recientemente a este «monstruo» (el xp desgraciadamente si vas a conectarte a internet con el ya da problemas pues los principales navegadores no lo soportan ya).
La verdad que tiene cosas que me han encantado (aunque necesitan pulirlas ,como el windows sandbox : una pena que no deje guardar el disco duro usado,o que no sea compatible con las aplicaciones .net),pero aun estoy «retocandolo» para que ocupe los minimos recursos posibles ,y sea tan comodo como los anteriores,sin tener que perder prestaciones por el camino.(Creci con un amstrad cpc 6128,luego pase a windows 95 y me parece exagerado que un sistema operativo derroche tanto espacio en disco duro y en recursos sin ofrecer cosas realmente novedosas ,como usuario normal)
Tambien estoy investigando sobre los containers,sandbox , maquinas virtuales y windows sandbox a raiz de lo interesante que he encontrado este ultimo y como funciona.
(la vieja aplicacion «DirWatch» es genial para ver que crea,modifica,borra..)
Yo uso un disco duro mecanico (y pequeñito: 50 Gb para el sistema operativo y programas instalados,los cuales solo quedan 27 libres +8 que «robo» windows sandbox para crear un volumen(curiosamente si no encuentra suficiente espacio libre,funciona sin crearla) ; 176 en otra particion para mis datos,los archivos que «desgraciadamente» tenemos la costumbre de poner en el escritorio y el archivo de paginacion),mas las particiones que creo el windows 10 cuando lo instale;
y la verdad que ayuda bastante (tengo 6 gigas de ram y a la ramdisk le tengo puesto que lo haga de forma dinamica ,uso ImDisk,partiendo de 256 Megas).
Como pega es que tarda un poco en arrancar,pero mi pc esta las 24 horas encendidas,por lo que no es un problema.
Buff,perdon por el tochazo : llevo dias «trasteando» y pegandome con el.
Por cierto,muy bueno el articulo de como funcionan los joycon : ahora estoy liado ,cuando pueda me gustaria comentarte unas cosillas al respecto (si pudiera mandarte un email seria mejor)
Saludos de nuevo
Dani
Hola Daniel
Si quieres hablar conmigo por email, para no poner algo así a la vista de todos en internet se me ocurre que me escribas un comentario pero rellenando el campo de email con tu email correcto. Este es un campo que solo lo veo yo, así que no habría peligro de que lo viese todo el mundo. Si no, tienes algunas de mis redes sociales en esta web.
Buenas de nuevo, el email que puse es mi email (uno de ellos)
Muy claro y explicativo, gracias