El almacenamiento en estado sólido ha evolucionado enormemente hasta la fecha. Pero con todos los avances posibles, persiste una ley física que es inmutable: un SSD saturado es un SSD lento. Cuando una unidad SSD alcanza el 90% de su capacidad, entran en juego mecanismos que penalizan enormemente tanto la velocidad de escritura como la latencia del sistema operativo.
En este aspecto, posee grandes diferencias con los antiguos discos duros mecánicos. En que básicamente el llenado solo afectaba a la fragmentación de archivos. Pero en los SSD actuales el problema lo encontramos en su estructura de las celdas de memoria NAND. A la hora de escribir nuevos datos, el controlador del disco no puede sobrescribir un espacio ocupado. En este caso, tiene que realizar un ciclo de lectura, borrado y reescritura. Por lo que, al quedar poco espacio libre, el disco pierde su capacidad de maniobra.
Y todo ello se traduce en, básicamente, parones o retrasos en la apertura de archivos y aplicaciones. Por lo tanto, alejarse de un llenado al 90% no es solo una recomendación, sino una necesidad a nivel técnico para preservar la salud de tu SSD.
El ciclo de escritura, lectura y borrado
Para entender por qué exactamente sufre un SSD al llenarse, debemos analizar su unidad mínima de operación. Los SSD escriben los datos en la llamadas «páginas«. Pero solo pueden borrar datos en bloques, que contienen muchas páginas. Cuando el disco está vacío, el controlador escribe directamente en páginas a máxima velocidad. Pero al alcanzar el 90% de capacidad ocupada, el controlador se encuentra con que no hay bloques limpios para seguir escribiendo páginas. Este efecto desencadena un fenómeno conocido como Amplificación de Escritura (o WAF). En que el disco debe leer un bloque entero que tiene datos antiguos y espacios vacíos, mover los datos a otra parte, borrar dicho bloque y, entonces, escribir los nuevos datos del usuario.
Como puedes ver, lo que antes se hacía en tan solo un paso (escribir una página), mediante el WAF se lleva a cabo en cuatro pasos, cada uno con su correspondiente tardanza. Este proceso de «limpieza» consume tanto ciclos de limpieza como tiempo. En una unidad SSD actual, como puede ser el Samsung 990 Pro, o las nuevas PCIe Gen 5, este retraso puede hacer que una velocidad de escritura de 10.000 MB/s descienda a menos de 1.000 MB/S. Como puedes ver, un rendimiento que bajaría del 100% al 10%. Además, también supone un desgaste para las celdas, ya que el disco hace muchas más operaciones de las que los usuarios le estamos solicitando.
Recolección de basura y Over-provisioning
Los SSD de generaciones actuales llevan a cabo un proceso llamado Garbage Collection -o Recolección de basura- que trabaja constantemente en segundo plano. Su función es consolidar las páginas válidas y liberar bloques. Un proceso que depende al 100% del comando TRIMP, que le indica al disco qué datos son necesarios y cuáles no. Si el disco está completo a más del 90%, la recolección de esta basura se vuelve totalmente ineficiente, ya que no tiene «espacio de intercambio» para mover los datos a otros bloques de manera temporal. Básicamente, sería como intentar organizar una estantería llena de libros sin tener una mesa cerca para apoyar los que vamos quitando.
Para paliar este mecanismo, los fabricantes de SSD suelen reservar una parte del disco que los usuarios no vemos, y es a esta parte a la que se le llama Over-provisioning. Por ejemplo, un SSD de 1 TB podría tener realmente 1,1 TB de memoria NAND, y utilizar esos 100 GB extra como zona de seguridad para que el propio disco pueda maniobrar. Aun así, si los usuarios llenan la partición de que disponen hasta el límite, este margen incluso se considera insuficiente. Por eso, lo ideal -en casos ya extremos- es no superar jamás el 80-85% de la capacidad total del SSD.
