Mejora del rendimiento de exFAT de Microsoft en Linux gracias a Sony

Mejora del rendimiento de exFAT de Microsoft en Linux gracias a Sony

Mejoras en el rendimiento de exFAT: una década de innovaciones

En 2012, Microsoft presentó la versión de 64 bits de su Tabla de Asignación de Archivos Extendida (exFAT), que sirvió como reemplazo moderno del antiguo sistema de archivos FAT32 de 32 bits. La compañía dio un paso importante en 2019 al anunciar la compatibilidad nativa con el formato exFAT en plataformas Linux, lo que marcó un hito en la evolución de la interoperabilidad de los sistemas de archivos.

Han surgido avances recientes, en particular gracias a las contribuciones del ingeniero de Sony, Yuezhang Mo. En 2022, Mo descubrió que optimizar la navegación de entradas de directorio podía mejorar el rendimiento de exFAT en un impresionante 57 %.Esta mejora fundamental se integró en la versión 6.2 del kernel de Linux, lo que demuestra la continua evolución de la tecnología de sistemas de archivos.

Últimos avances en optimización de exFAT

Mo ha regresado con nuevas mejoras en una solicitud de incorporación de cambios reciente destinada a refinar el sistema de archivos exFAT. Los cambios propuestos incluyen varias mejoras clave que no solo mejoran el rendimiento, sino que también solucionan problemas existentes. A continuación, se presenta un resumen de las mejoras incluidas en esta última solicitud:

Descripción de esta solicitud de extracción:

  • Abordar la corrupción aleatoria de la pila y rectificar errores en exfat_get_block().
  • Mejore exfat_get_block()mediante la optimización para casos extremos.
  • Se soluciona un problema de bucle infinito relacionado con cadenas autovinculadas en exfat_find_last_cluster.
  • Eliminar EXFAT_CLUSTERS_UNTRACKEDcódigos obsoletos.
  • Agregue comprobaciones esenciales durante el apagado.
  • Mejore el rendimiento de eliminación al utilizar la opción de montaje de descarte.

La opción «descartar montaje» desempeña un papel crucial en la mejora del rendimiento. Permite que el sistema de archivos se comunique con el dispositivo de almacenamiento para indicar qué bloques ya no son necesarios. Esta notificación en tiempo real permite una gestión eficiente del espacio libre, lo que ayuda a optimizar las operaciones y a mejorar la eficiencia general del sistema de archivos.

El parche aclara:

Si la opción de montaje de descarte está habilitada, los clústeres liberados se descartan rápidamente. Procesar los clústeres uno por uno puede reducir el rendimiento, lo que puede provocar bloqueos leves al liberar una gran cantidad de clústeres. Esta actualización mejora el rendimiento al agrupar la operación de descarte de clústeres contiguos.

Métricas de rendimiento: una mejora drástica

La mejora del rendimiento gracias a estas mejoras es notable. Las pruebas se realizaron con un archivo considerable de 80 GB, cuya eliminación anteriormente requería aproximadamente 4 minutos y 46 segundos. Tras implementar las nuevas optimizaciones, el tiempo de eliminación se redujo drásticamente a menos de 2 segundos, lo que supone una asombrosa mejora del rendimiento de 172 veces.

Las mediciones de desempeño revelan:

#truncate -s 80G /mnt/file

#time rm /mnt/file

Sin este compromiso:

  • 4m46.183s reales
  • usuario 0m0.000s
  • sistema 0m12.863s

Con este compromiso:

  • 0m1.661s reales
  • usuario 0m0.000s
  • sistema 0m0.017s

Para obtener más detalles sobre esta solicitud de extracción, puede consultarla en la lista de correo del kernel de Linux (LKML).

Para obtener más información sobre estas mejoras de rendimiento, puede visitar el artículo fuente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *