16Aug

Por qué las unidades de estado sólido disminuyen la velocidad a medida que las llenas

Los puntos de referencia son claros: los discos de estado sólido se ralentizan a medida que los va llenando. Llene su unidad de estado sólido a capacidad cercana y su rendimiento de escritura disminuirá drásticamente. La razón por la cual radica en la forma en que funcionan los SSD y el almacenamiento NAND Flash.

Llenar la unidad hasta su capacidad es una de las cosas que nunca debe hacer con una unidad de estado sólido. Una unidad de estado sólido casi llena tendrá operaciones de escritura mucho más lentas, ralentizando su computadora.

Bloques vacíos y bloques parcialmente rellenos

Cuando escribe un archivo en su unidad de estado sólido, busca bloques vacíos y los rellena. Escribir en un bloque vacío es la operación de escritura más rápida posible. Es por eso que los nuevos sistemas operativos( Windows 7 y posterior) admiten la función TRIM, que borra automáticamente los datos de un archivo de la unidad de estado sólido tan pronto como elimina el archivo en su sistema operativo. Esto funciona de forma diferente a los discos duros magnéticos, donde los bits de los archivos eliminados se sientan en el disco duro.

No se sientan en una unidad de estado sólido: TRIM garantiza que el bloque se vacíe para que la SSD pueda escribir rápidamente nuevos datos en el bloque vacío en el futuro. Escribir sobre un sector ya escrito es tan rápido como escribir en un sector vacío en un disco duro mecánico, pero una unidad de estado sólido debe borrar un bloque antes de escribir en él.

La memoria flash NAND escribe datos en páginas de 4 KB dentro de bloques de 256 KB.Para agregar páginas adicionales a un bloque parcialmente lleno, la unidad de estado sólido debe borrar todo el bloque antes de volver a escribir datos en él.

A medida que su unidad de estado sólido se llena, hay cada vez menos bloques vacíos disponibles. En su lugar son bloques parcialmente llenos. La unidad de estado sólido no puede simplemente escribir los datos nuevos en estos bloques parcialmente llenos, eso borrará los datos existentes. En lugar de una simple operación de escritura, la unidad de estado sólido tiene que leer el valor del bloque en su caché, modificar el valor con los datos nuevos y luego volver a escribirlo. Tenga en cuenta que escribir un archivo probablemente implique escribir en muchos bloques, por lo que puede presentar una cantidad significativa de retraso adicional.

TRIM no consolida los bloques parcialmente rellenos

Si llena un disco a capacidad o cerca de su capacidad, es probable que termine con muchos bloques parcialmente llenos después de eliminar los archivos. El comando TRIM solo dirige una unidad de estado sólido para eliminar datos de archivo cuando se elimina el archivo. No obliga a la unidad a realizar ningún tipo de operación de limpieza.

En otras palabras, llene una unidad de estado sólido a su capacidad antes de eliminar los archivos y es probable que termine con muchos bloques parcialmente llenos. El disco no saldrá de su camino para consolidar estos bloques parcialmente llenos en bloques completos, liberando bloques vacíos. El disco todavía estará lleno de bloques parcialmente llenos y el rendimiento de escritura se verá degradado.

Aprovisionamiento excesivo y recolección de basura

Para evitar que los consumidores llenen sus unidades de estado sólido y terminen con un rendimiento severamente degradado, los fabricantes de SSD hacen todo lo posible para contrarrestar esto.

Las unidades de estado sólido de consumo a menudo reservan aproximadamente el 7% de su almacenamiento total en flash y lo hacen no disponible para el usuario. Esto se conoce como "sobreprovisionamiento": se agrega hardware de almacenamiento adicional a la unidad, pero no es visible para la computadora como el almacenamiento disponible que puede usar. El área de repuesto asegura que la unidad nunca se llene por completo; siempre habrá algo de capacidad adicional para ayudar a mantener el rendimiento de escritura estable.

Cada controlador de unidad de estado sólido tiene un algoritmo de recolección de basura para intentar mitigar este problema. Cuando el disco se llena, buscará bloques parcialmente rellenos y comenzará a consolidarlos, liberando tantos bloques vacíos como sea posible. Las diferentes unidades de estado sólido ejecutan estas operaciones en diferentes momentos y umbrales, eso depende del controlador de la unidad.

Benchmark Evidence

Anandtech realizó una variedad de pruebas comparativas con diferentes unidades para determinar la relación entre el área de repuesto de una unidad de estado sólido y la consistencia del rendimiento de la operación de escritura. Al llenar una unidad vacía, encontraron un alto rendimiento de escritura muy temprano en el proceso y una caída significativa a medida que las operaciones de escritura continuaban llenando la unidad.

Al reservar más área libre en las unidades, el rendimiento se mantuvo constante, ya que garantizaba que la unidad siempre tuviera suficientes bloques vacíos listos.

Descubrieron que "el rendimiento mínimo mejora sustancialmente una vez que alcanzas el 25% de área de repuesto para estas unidades [de consumo]". Su recomendación final fue que "planeas usar solo el 75% de la capacidad [de tu unidad] si quieres una buenaequilibrio entre la consistencia del rendimiento y la capacidad. "

Si tiene una unidad de estado sólido, debe intentar evitar el uso de más del 75% de su capacidad. Compre una unidad más grande con más capacidad de almacenamiento de la que necesita y se asegurará de que siempre tenga un rendimiento de escritura constante. Afortunadamente, los discos SSD se están volviendo cada vez más baratos, por lo que no es tan caro como lo era antes.

Crédito de la imagen: Music Sorter en Wikimedia Commons, Simon Wüllhorst en Flickr