¿El bajo espacio en disco afecta el rendimiento de SSD?

16

Me preguntaba si tener menos de 5-10 GB de espacio libre en un SSD afectaría el rendimiento. ¿Es específico de SSD o es más un aspecto del sistema operativo?

Por ejemplo, en un Intel X-25 G2 que tiene soporte TRIM (en Windows 7).

Gabe
fuente

Respuestas:

14

La mayoría de los SSD se ralentizarán a medida que se llenen. Los SSD tienden a elegir bloques vacíos para escribir, ya que solo pueden modificar un bloque borrando y reescribiendo todo el bloque. Una vez que todos estos bloques estén parcialmente llenos, cada operación de escritura requerirá borrar y reescribir, lo que significa que el SSD tiene que leer el bloque en caché, modificar el caché con los nuevos datos, luego borrar el bloque y escribir el caché. Esto se traduce en una lectura y dos operaciones de programación para cada bloque que debe modificarse. Además, aunque la fragmentación tiene muy poco efecto en las SSD, la alta fragmentación y el hecho de que la mayoría de los SO ignoran las SSD pueden hacer que el SO emita más escrituras de las necesarias. Los bloques del SSD suelen ser más grandes que las unidades de asignación del sistema operativo, por lo que si el SSD no espera las escrituras adicionales, podría terminar repitiendo el mismo proceso de tres pasos varias veces por bloque, lo que ralentizaría aún más las escrituras. Incluso eliminar archivos no resuelve este problema, porque los datos permanecen allí, y el SSD no sabe que ya no se usan, y continúa reescribiendo estos datos eliminados.

La operación TRIM, que admite su unidad, permite que el sistema operativo le indique a la unidad que elimine los datos eliminados. Esto permite que la unidad recupere bloques vacíos. Sin embargo, los únicos sistemas operativos que admiten TRIM son Windows 7, Windows Server 2008 R2 y distribuciones de Linux que usan el kernel 2.6.33 o posterior.

Como tiene Windows 7, su sistema está utilizando el comando TRIM y puede reclamar los bloques no utilizados. Sin embargo, TRIM no reorganiza los datos, por lo que si la unidad está casi llena, la fragmentación alta puede causar que los datos ocupen parcialmente los bloques y limite la efectividad de TRIM. Lo mejor que puedo hacer hasta donde puedo decir es liberar tanto espacio en disco como sea posible. Si puede liberar suficiente espacio, entonces se pueden recortar bloques completos y su unidad recuperará algo de velocidad. Además, hay programas de desfragmentación que están orientados a SSD, lo que significa que solo se desfragmentarán lo suficiente como para recortar algunos bloques adicionales, pero no conozco ninguno libre. Creo que se supone que Diskeeper haga esto, pero es costoso y he escuchado críticas muy variadas.

TuxRug
fuente
1
La capa FTL se encuentra por debajo del nivel del sistema de archivos. Si bien puede parecer que el sistema de archivos está fragmentado, esto NO significa que la capa FTL esté fragmentada. Esos programas de "desfragmentación" SSD no valen nada, no pueden acceder a la capa FTL, es aceite de serpiente. Ahora, la falta de espacio libre hace que la SSD sea más lenta, ya que tiene menos espacio para recolectar basura, usar nivelación y todas esas cosas buenas. Los SSD no seleccionan automáticamente bloques vacíos per se, también deben tener en cuenta la nivelación del desgaste. En pocas palabras, el sistema de archivos NO sabe nada acerca de cómo almacena cosas en la capa FTL
Time Twin
Los sistemas de archivos no optimizados para SSD no pueden recortar tanto, lo que tiene el mismo efecto que un espacio libre más pequeño.
Basilevs
4

En este excelente artículo de AnandTech, exploran la relación entre el área libre y el rendimiento de SSD. La conclusión es que todos los SSD ganan / mantienen el rendimiento cuando dejan parte de su espacio sin usar. A veces hay incluso una diferencia entre el 25% de espacio libre y el 50% de espacio libre.

Stefan Seidel
fuente
3

Depende de un modelo SSD específico, proveedor y patrones de uso.

En algunas situaciones, un SSD de uso intensivo puede ofrecer un rendimiento significativamente degradado sin tener en cuenta la cantidad de espacio en disco utilizado que requiere un borrado de bajo nivel para restaurar a un nivel de rendimiento como nuevo.

ocsid80
fuente
Por ejemplo, en un Intel X-25 G2 que tiene soporte TRIM (en Windows 7).
Gabe
0

Escuché que los SSD tienden a disminuir cuando se llenan casi, pero supongo que necesitaría tener menos de 5-10 GB de espacio libre para que sientas algo así. Tal vez cuando te quede menos de 1 GB o algo así.

Ben
fuente
0

Los sistemas de archivos en general se ralentizan cuando se llenan. Es debido a la fragmentación. En un disco vacío, puede estar seguro de que puede escribir un archivo en un bloque. A medida que el sistema de archivos se llena, las posibilidades de poder encajar el archivo en un solo bloque contiguo disminuyen, y tiene que hacer más y más búsquedas para encontrar los datos, convirtiendo lo que originalmente era un acceso secuencial de datos en un más como un acceso aleatorio de datos, y por lo tanto más lento.

gorila
fuente
2
Esto no se aplica a los SSD porque no hay partes móviles, por lo tanto, los accesos aleatorios agregan una cantidad insignificante de tiempo de acceso. Es posible que deba tener un archivo saltando con miles de fragmentos colocados al azar para tener un impacto notable, que en su mayoría sería del sistema operativo mismo que planea sus lecturas y escrituras.
TuxRug
1
Todavía hay una diferencia entre lecturas secuenciales y lecturas aleatorias. Por ejemplo, codinghorror.com/blog/2008/06/… proporciona 26 MB / s para lectura secuencial y 6 Mb / s para lectura aleatoria.
gorila
@TuxRug: las unidades se agrupan en bloques de borrado de cientos de Kbytes o más; una vez que se escribe una página (que representa 512 o 4096 bytes de datos de "disco lógico"), no se puede reescribir, excepto borrando todas las páginas dentro de su bloque. Cuando se sobrescribe un sector de "disco lógico", la unidad asigna una página que antes estaba en blanco para contener sus nuevos contenidos y observa que la página anterior puede considerarse obsoleta. En lugar de borrar páginas obsoletas inmediatamente, la mayoría de las unidades esperarán hasta que necesiten el espacio y luego buscarán un bloque donde la mayoría o todas las páginas estén obsoletas.
supercat
@TuxRug: si el número de páginas vacías es críticamente bajo, el rendimiento de la unidad será proporcional al mayor número de páginas libres u obsoletas dentro de cualquier bloque [si hay 10 bloques cada uno con 15 páginas obsoletas, entonces para las siguientes 150 escrituras, una escritura / ciclo de borrado será necesario cada 15. Si hubiera tres bloques cada uno con 50 páginas obsoletas, entonces solo se necesitaría un ciclo de escritura / borrado en cada 50a escritura.] La fragmentación hace que sea más probable que uno termine con muchos bloques que tienen solo unas pocas páginas obsoletas cada uno.
supercat
0

Otro factor importante es si el fabricante de SSD establece el exceso de aprovisionamiento y cuánto lo establece, como se explica aquí . El sobreaprovisionamiento significa que parte del espacio está reservado para actividades en segundo plano, como la recolección de basura, y no está disponible para el usuario. Por ejemplo, un SSD anunciado como 256 GB en realidad puede ser 282 GB si se establece un sobreaprovisionamiento del 10%.

Si el fabricante de SSD ha sido generoso con el espacio de aprovisionamiento excesivo, el espacio en disco bajo puede no afectar el rendimiento en gran medida, por ejemplo, incluso un SSD que parece estar 100% lleno en realidad puede estar solo 85% lleno. Pero si realmente puede llenar su SSD cerca del 100%, eso causaría una degradación significativa del rendimiento.

En resumen, la cantidad del efecto y si será notable es específico de SSD. Pero como regla general, los SSD funcionan mejor cuando están en su mayoría vacíos y su rendimiento se deteriora a medida que se llenan, por razones explicadas en otras respuestas y en el enlace.

Debie Downer
fuente