¿Por qué las unidades de estado sólido disminuyen su velocidad a medida que las llena?
Los puntos de referencia son claros: las unidades de estado sólido disminuyen su velocidad a medida que las llena. Llene su unidad de estado sólido hasta casi la capacidad y su rendimiento de escritura disminuirá drásticamente. La razón por la que reside en la forma en que funcionan los SSD y el almacenamiento NAND Flash.
Llenar la unidad a su máxima capacidad es una de las cosas que nunca debe hacer con una unidad de estado sólido. Una unidad de estado sólido casi completa tendrá operaciones de escritura mucho más lentas, lo que ralentizará su computadora.
Bloques vacíos y bloques parcialmente llenos
Cuando escribe un archivo en su unidad de estado sólido, busca bloques vacíos y los llena. 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 posteriores) son compatibles con la función TRIM, que elimina 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 manera diferente a los discos duros magnéticos, donde los bits de 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 un disco 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 menos y menos bloques vacíos disponibles. En su lugar se encuentran bloques parcialmente llenos. La unidad de estado sólido no puede simplemente escribir los nuevos datos en estos bloques parcialmente llenos, lo que borraría 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 nuevos datos y luego volver a escribirlo. Tenga en cuenta que escribir un archivo probablemente implique escribir en muchos bloques, por lo que esto puede introducir una cantidad significativa de retraso adicional.
TRIM no consolida bloques parcialmente llenos
Si llena una unidad al máximo o casi a su capacidad, es probable que termine con muchos bloques parcialmente llenos después de eliminar los archivos. El comando TRIM simplemente dirige una unidad de estado sólido para eliminar los datos del 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 hasta su capacidad antes de eliminar archivos y es probable que termine con muchos bloques parcialmente llenos. La unidad no hará todo lo posible para consolidar estos bloques parcialmente rellenos en bloques completos, liberando bloques vacíos. La unidad todavía estará llena de bloques parcialmente llenos y el rendimiento de escritura se degradará.
Overprovisioning y recolección de basura
Para evitar que los consumidores llenen sus unidades de estado sólido y terminen con un rendimiento muy degradado, los fabricantes de SSD están haciendo todo lo posible para contrarrestar esto.
Las unidades de estado sólido de nivel de consumidor a menudo reservan aproximadamente el 7% de su almacenamiento flash total y hacen que no esté disponible para el usuario. Esto se conoce como "exceso de aprovisionamiento": el hardware de almacenamiento adicional se agrega a la unidad pero no es visible para la computadora como el almacenamiento disponible que puede usar. El área de repuesto garantiza que la unidad nunca se llene por completo: siempre habrá algo de capacidad adicional para ayudar a mantener estable el rendimiento de escritura.
El controlador de cada unidad de estado sólido tiene un algoritmo de recolección de basura para tratar de mitigar este problema. Cuando la unidad se llene, buscará bloques parcialmente llenos y comenzará a consolidarlos, liberando tantos bloques vacíos como sea posible. Diferentes unidades de estado sólido ejecutan estas operaciones en diferentes momentos y umbrales, eso depende del controlador de la unidad.
Evidencia de referencia
Anandtech realizó una variedad de puntos de referencia con diferentes unidades para descubrir la relación entre el área de repuesto de una unidad de estado sólido y la consistencia de su rendimiento de 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 continuaron llenando la unidad.
El hecho de dejar un espacio adicional en las unidades ayudó a que el rendimiento se mantuviera constante, ya que aseguraba que la unidad siempre debería tener suficientes bloques vacíos listos.
Descubrieron que "el rendimiento mínimo mejora sustancialmente una vez que alcanza el 25% del área de repuesto para estas unidades [del consumidor]". Su recomendación final fue que debería "planear usar solo alrededor del 75% de la capacidad de [su unidad] si desea un buen equilibrio entre la consistencia y la capacidad de rendimiento ".
Si tiene una unidad de estado sólido, debe tratar de evitar el uso de más del 75% de su capacidad. Compre una unidad más grande con más almacenamiento del que necesita y se asegurará de que siempre tenga un rendimiento de escritura constante. Por suerte, las unidades SSD se están volviendo cada vez más baratas, por lo que no son tan caras como lo eran antes..
Crédito de la imagen: Music Sorter en Wikimedia Commons, Simon Wüllhorst en Flickr