
corrí elPrueba de ajustepropuesto porescarchachutzy también encontréaquí. El archivo resultante de 1 MB está muy fragmentado. Como puede ser ?
Mi único dispositivo de almacenamiento /dev/sda
es un SSD Samsung de 500 GB. Está "preparado para TRIM" y el kernel viene con un fstrim
ejecutable en formato /etc/cron.weekly
. Sin embargo, quería realizar la prueba, digamos, por curiosidad. La prueba produjo un archivo de 1 MB, trim.test, lleno con el y
carácter alfa.
Después de la creación del archivo, verifiqué la posición exacta del archivo en el disco:
> cd /
> yes | sudo dd iflag=fullblock bs=1M count=1 of=trim.test
> sudo filefrag -s -v trim.test
Filesystem type is: ef53
Filesystem cylinder groups approximately 177
File size of trim.test is 1048576 (256 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 15: 2816076.. 2816091: 16: merged
1: 16.. 31: 170064.. 170079: 16: 2816092: merged
2: 32.. 63: 170848.. 170879: 32: 170080: merged
3: 64.. 127: 168269.. 168332: 64: 170880: merged
4: 128.. 255: 170112.. 170239: 128: 168333: merged,eof
trim.test: 5 extents found, perfection would be -1 extent
Esto se repite si borro el archivo y repito el procedimiento.¿Cómo puede un archivo de 1 MB estar tan fragmentado?
Respuesta1
Después de husmear y leer sobre el tema de TRIM y fragmentación, responder mi propia pregunta podría ser de ayuda para otros.
Al leer sobre TRIM, se hacen frecuentes referencias a la fragmentación de archivos. Ambos aspectos son fuente de preguntas legítimas sobre el rendimiento del almacenamiento SSD, pero las dos cosas son distintas.
- fragmentación de archivosConsiste en escribir un archivo en HDD o SSD en muchas áreas de escritura diferentes no contiguas, utilizando bloques físicos distribuidos en el medio de almacenamiento dentro de una partición. En el contexto particular de los SSD, veremos que no tiene nada que ver con las acciones de TRIM o incluso con el nivel de gestión de almacenamiento de TRIM, sino que está relacionado connivelación de desgaste(WL), otro proceso de gestión de medios de almacenamiento de bajo nivel siempre presente en los SSD (a diferencia de TRIM). La gestión de datos internos en los SSD se diferencia fundamentalmente de la de los HDD en su asignación de sectores a celdas de memoria flash no volátiles (es decir, celdas de SSD) y sus bloques correspondientes (bloques flash). Tiene una incidencia directa en la fragmentación de archivos.
- RECORTARprepara bloques físicos escritos al menos una vez en un SSD para nuevas operaciones de escritura (Wops), evitando la necesidad de borrar los bloques objetivo inmediatamente antes de que ocurra el Wop (como sería el caso en una configuración sin TRIM). Para eso, el SSD debe tener un controlador de hardware que esté preparado para TRIM. No siempre es así. Después de la primera fase de uso (es decir, cuando el SSD aún es relativamente nuevo y todos sus bloques aún no se han escrito al menos una vez), los Wops disminuyen la velocidad hasta alcanzar un nivel de velocidad. En esa etapa, una regla general es que TRIM reduce aproximadamente a la mitad los tiempos de escritura en SSD listos para TRIM con respecto al mismo hardware sin TRIM habilitado.
Durante Wops, los SSD se comportan de manera muy diferente a los HDD. Un HDD nunca necesitará borrar un bloque antes de un Wop. Un SSD siempre lo hace y eso requiere mucho tiempo. TRIM ayuda a aliviar ese consumo de tiempo al preacondicionar los bloques liberados recientemente en el SSD compatible con TRIM, esencialmente borrando previamente los bloques que se liberan después de que un archivo fue modificado y movido a un área diferente del volumen. Esta es una visión simplificada de la realidad, pero en la que el usuario no experto puede confiar para comenzar a tomar decisiones sobre el hardware y la administración de hardware de bajo nivel. Sigue leyendo...
¿TRIM está relacionado con la fragmentación de SSD?
- Respuesta corta: No, no están relacionados.
- Respuesta larga: la fragmentación está relacionada con la nivelación del desgaste (WL), perootroproceso que optimiza la vida útil de los SSD. WL es esencial para homogeneizar Wops en todo el espacio de bloque libre/disponible/no reservado de SSD dentro de un volumen/partición. Lo hace porque cada Wop hace que las células del SSD correspondiente envejezcan mediante la aplicación de un voltaje relativamente grande sobre una pequeña área de la capa semiconductora, reduciendo así su vida útil. (Creo que esto tiene que ver con defectos inducidos térmicamente introducidos en la mayor parte del SSD, pero eso está fuera de tema).
Si los Wops se administraran en SSD como se hace en HDD, ciertas áreas del medio de almacenamiento se desgastarían mucho antes que otras, lo que provocaría bloques no funcionales, pérdida de capacidad, pérdida de datos y errores. En realidad, WL garantiza que todos los bloques en cualquier partición de SSD determinada estén sujetos a la misma cantidad de Wops y que el desgaste se "nivele" en todo el espacio de partición disponible de la SSD. En ese sentido, aumenta efectivamente la vida útil del SSD, manteniendo su capacidad total hasta su desaparición.
Hay dos modos WL: estático y dinámico. Estewiki(en alemán) especifica que el recuento de ciclos de escritura al final de la vida útil de un SSD puede aumentar 100 veces para WL estático y 25 veces para WL dinámico en comparación con el mismo hardware con WL desactivado.
Como WL distribuye físicamente Wops (el parámetro limitante que define la vida útil de los SSD) de la manera más uniforme posible en todo el espacio de almacenamiento del SSD dentro de una partición, inevitablemente contribuirá a la fragmentación de sus datos. Lo hace para lograr su objetivo principal de distribución optimizada de bloques escritos en cualquier partición SSD determinada. La conclusión es que cualquier archivo almacenado en un SSD puede fragmentarse un poco más que en un HDD tradicional.Sin embargo, la fragmentación no se traduce en ninguna disminución del rendimiento del SSD.
El funcionamiento de WL tiene otros corolarios: cuanto mayor es el volumen del SSD, mayor es su vida útil para determinadas condiciones de uso. Para el usuario, las "condiciones de uso" significan principalmente:
- la cantidad de espacio utilizado en la partición de un SSD y
- la frecuencia de Wop, es decir, cuánto acceso de escritura tiene el medio de almacenamiento.
En realidad, esto puede hablar a favor de:
- colocar lx swap, /home, /tmp y /var en un HDD, mientras que el resto del sistema operativo puede vivir felizmente en un SSD más pequeño.
- no hacer que ninguna partición con muchos Wops sea demasiado pequeña en un SSD. Por ejemplo, si el intercambio debe realizarse en un SSD y lee que es mejor configurar lx-swap al doble del tamaño de su DRAM, hágalo 4 veces. No sé si mi aritmética es correcta, pero la idea general es que esto también duplicará más o menos la vida útil del espacio de intercambio. Si realiza muchas operaciones que requieren intercambio (servidores con mucho uso de base de datos, etc.), piense en mover su intercambio y /tmp a un disco duro, a menos que, por supuesto, le guste la idea de llevar un quemador de gas a su SSD.
Mientras tanto, TRIM prepara los bloques de SSD para cualquier nuevo Wop próximo. Precondiciona celdas una vez escritas para un nuevo Wop borrando esas celdas (en realidad, la operación ocurre a nivel de bloque) y comenzandorecolección de basuracuando sea necesario. En ese sentido, TRIM vigila el mapa de distribución de los bloques recién liberados (y al menos una vez usados) mientras están siendo administrados a bajo nivel por el controlador WL.
Conclusión:
- La fragmentación no es un problema. No es perjudicial para el rendimiento del SSD. Los SSD no necesitan (verLa charla de Intel sobre los SSD) ni se benefician de la limpieza en forma de desfragmentación. Cualquiera que sea su sistema operativo, desactive la desfragmentación. Ahora.
- TRIM es importante y beneficioso, siempre que el SSD esté preparado para TRIM. Hoy en día, un puñado de marcas ofrecen SSD con capacidad TRIM. Si has leído este hilo desde el principio, sabrás el nombre de al menos una de esas marcas de renombre. También hace unos años, ext2 se consideraba la mejor opción que ext3 porque el registro en diario iba en contra de algunos de los beneficios que aporta TRIM cuando se utilizan SSD de primera generación. Ya no es el caso y en realidad se recomienda ext4 con TRIM + Garbage Collection.
HTH.