// porque los discos “Solid-State” (SSD) se ponen más lentos mientras más llenos esten

2

Todo equipo basado en una memoria “solid-state” (SSD) como lo son las tablets, smartphones y algunas laptops sufren de un mal común. Solid-state puede ser una excelente alternativa para obtener velocidades de lectura y escritura impresionantes versus los clásicos discos duros mecánicos, esto es hasta que usted lo empiece a llenar de data cerca de su capacidad. Cuando el “solid-state” está casi lleno, el desempeño de este empieza a reducirse rápidamente. Pero… ¿por qué?

Imagínese un “solid-state” como un grupo de bloques donde cada bloque está reservado para guardar una data. Si usted quiere grabar un archivo, este busca un bloque desocupado e inserta la data dentro de este (en la realidad no todo el archivo necesariamente cabe en un “bloque”, en mucha ocasiones se tiene que distribuir en más de uno, estoy simplificando a manera de ejemplo como se lleva a cabo este proceso). Los discos duros trabajan de forma similar pero con una gran diferencia.

Cuando usted borra un archivo en un disco duro, este no se borra permanentemente, simplemente se le coloca una bandera (flag) indicando que este espacio está disponible para almacenar nueva data. La próxima vez que quiera guardar un archivo, el disco ve este espacio como disponible y lo guarda sobre la data marcada como borrada. Es en este momento en que la vieja data “desaparece” por completo. Solid-State trabaja algo diferente, especialmente en sistemas operativos que implementan la tecnología TRIM como lo es Windows 7 y Windows 8. Cuando usted borra un archivo, usted está liberando ese bloque ocupado por completo. O sea, la data se elimina permanentemente y queda vacío el espacio, listo para recibir nueva data. Esto conlleva que el Solid-State tenga que hacer un paso adicional cada vez que necesita borrar un archivo versus un disco duro mecánico el cual simplemente reescribe encima de la data vieja. Pero el tema se complica más…

¿Recuerdan los bloques en el Solid-State? Si un bloque está lleno parcialmente, este no está disponible para llenarlo con más data. Simplemente el SSD sigue buscando un bloque completamente vacío para guardar la nueva data. ¿Pero qué pasa cuando el Solid-State se está llenando? Cada vez son menos los bloques completamente vacíos disponibles. Es aquí donde empiezan los problemas.

clip_image002

Cuando el Solid-State no encuentra bloques vacíos disponibles suficientes, este lee el contenido de un bloque parcialmente lleno, lo lleva a su memoria cache y lo junta con la nueva data, para luego almacenarlo nuevamente en el bloque donde estaba originalmente. Ahora recuerden que en la mayoría de los casos una data no cabe en un solo bloque, así que este procedimiento de lo más seguro requerirá repetirse en múltiples bloques (leer, juntar y volver a guardar). ¿Ya ven el problema de un Solid-State el cual está casi lleno?

Peor aún, TRIM no tiene una operación el cual vigila que bloques están parcialmente llenos y consolidarlos en un bloque para así liberar espacio. Por esta razón con el pasar del tiempo, mientras va guardando y borrando data, su Solid-State se empieza a llenar de bloques parcialmente llenos, dando paso a los problemas que explicamos anteriormente.

Ahora bien, hay manufactureros de Solid-State que sí han incorporado a nivel de hardware la capacidad de consolidar bloques parcialmente llenos, este proceso se conoce como “garbage collection”, de esta forma liberando por completo bloques de data y así mejorando el desempeño de la escritura. Pero no todos los manufactureros trabajan esta tarea de igual forma, por ejemplo esta actividad puede estar programada a ejecutarse cuando usted haya consumido una cantidad definida de data o para ser ejecutado a diferentes tiempos durante el día, por lo cual los desempeños de varios SSDs de diversas marcas pueden variar con el tiempo.

Hay otra técnica llamada “over-provisioning” (OP) el cual es utilizado por algunos manufactureros. En discos “Solid-State” con OP, este cuenta con más espacio de almacenamiento que lo presentado por el sistema operativo. Este espacio no está disponible para el usuario, sino que es utilizado por el Solid-State para garantizar que siempre hay bloques vacíos disponibles. Si estos espacios reservados son utilizados sea porque el SSD no encontró un bloque vacio disponible, luego pueden ser nuevamente liberados al ejecutar el proceso de “garbage collection”.

Moraleja: no sobrealimente su SSD

En resumen, siempre trate de conservar un espacio libre razonable en su Solid-State, nuestra sugerencia es de un 20% a un 30% de toda su capacidad. De tal forma usted se asegura que siempre tiene bloques vacíos, listo para recibir nueva data. Créanme, usted sentirá la diferencia en su Smartphone, Tablet o laptop con Solid-State.

Imágen por Wikipedia

2 Responses

  1. DeOrdenadores

    Hola Carlos,

    Una buena estrategia es dejar espacio libre no sólo en los discos SSD, sino también en el resto de discos duros aunque el funcionamiento para grabar y leer datos sea distinto.

    Si tienes un disco tradicional y lo llegas casi entero notas como su rendimiento baja bastante.

    Buena explicación del funcionamiento de SSD.

    Saludos.

    Reply
  2. Benja

    No era que esa ralentización del rendimiento de la unidad no pasaba con los SSDs? o eso leí.

    Reply

¡Comparte tu opinion!