¿La descarga / copia de archivos promueve simultáneamente la fragmentación?


10

¿Escribir más de un archivo simultáneamente en una partición del disco duro promueve la fragmentación? ¿Se escribirían estos archivos entrelazados en el disco duro?

Ejemplos:

  • Descargar varios archivos simultáneamente de la web
  • Copiar archivos de varias fuentes a la misma partición
  • Descargando varios torrents

¿Es esto diferente entre varios sistemas operativos? ¿La asignación de espacio a priori para todo el archivo es una característica específica de la aplicación?


Buena pregunta. Solo puedo notar que esto depende de la implementación exacta del controlador del sistema de archivos, que es más estrecha que el sistema operativo.
whitequark

44
Esta será una respuesta compleja ... Sí, es específica del sistema operativo y de la aplicación. Algunas aplicaciones asignan espacio y otras no. A veces no hay forma de saber de antemano cuánto espacio asignado se requiere, por lo que ese tipo de aplicación puede fragmentarse más. También va a ser específico del sistema de archivos (puede estar usando fat32 o NTFS en Windows)
Jarvin

Respuestas:


7

Depende mucho del sistema de archivos en uso, hasta cierto punto del sistema operativo, así como del programa que abre el archivo. Depende de la aplicación solicitar la cantidad correcta de almacenamiento al crear un nuevo archivo, y son las características del sistema operativo y del sistema de archivos las que afectan el comportamiento de apertura y extensión que estas aplicaciones siguen cuando no saben cuánto espacio pedir.

Si un programa le pide al sistema operativo un archivo de 4.2GB, el sistema operativo encontrará un trozo de espacio con 4.2GB gratis. De lo contrario, le dará al programa suficientes fragmentos de espacio libre para guardar el archivo. Aquí hay algunas variables, esto se simplifica.

Si un programa le pide al sistema operativo un archivo de 4KB, el sistema operativo lo dará. Si el programa sigue pidiendo nuevos segmentos contiguos de 4KB (está descargando un archivo y el programa no sabía qué tan grande era) hasta que obtiene 4.2GB de espacio, el sistema operativo felizmente le dará espacio. Este es el caso donde el sistema de archivos y el sistema operativo hacen las diferencias.

XFS, por ejemplo, se basa en la extensión, por lo que el espacio agregado será contiguo hasta que no pueda serlo. Además, XFS se puede configurar para preasignar nuevos archivos con una cierta cantidad de espacio que puede minimizar aún más la fragmentación (útil en los volúmenes de almacenamiento de la máquina virtual, así como los volúmenes ISO de DVD).

EXT2 / 3, NTFS, y creo que Reiser, asignará contiguos hasta que ya no pueda. Entonces comenzará nuevos fragmentos. Sin embargo, cada fragmento podría tener un tamaño de 4KB.

Tomemos el peor de los casos. Dos archivos paralelos de 4.2GB que se guardan 4KB a la vez en paralelo, en el mismo directorio. Lo del 'mismo directorio' es parte del peor de los casos, ya que algunas combinaciones de OS / FS intentan mantener los archivos en el mismo directorio cerca uno del otro. Para algunas combinaciones de OS / FS, esto dará como resultado que los dos archivos se intercalen completamente en el disco. Para otros que intentan mantener archivos nuevos abiertos en diferentes segmentos libres, puede no haber fragmentación o muy poca.

Un poco en XFS (creo que ext4 y btrfs también pueden hacer esto). En este caso, la intercalación no será 4KB, será lo que establezca el valor de tamaño de asignación al montar el volumen. Configúrelo en 256 MB, y obtendrá un archivo de 4.2 GB con 17 fragmentos en lugar de más de un millón. Útil para volúmenes que almacenan archivos grandes como servidores de medios. No es útil para volúmenes que almacenan muchos archivos pequeños y algunos grandes.

Es por esto que los clientes de Bittorrent abren archivos dispersos al iniciar una nueva descarga o simplemente asignan el tamaño especificado en total antes de comenzar.

Al copiar archivos de diferentes partes de la misma partición (o diablos, incluso de otras particiones), el proceso de copia sabe teóricamente qué tan grandes son los archivos copiados, por lo que solicita un espacio del tamaño apropiado desde el sistema operativo desde el principio; no es necesario agregar asignaciones para nuevos archivos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.