¿Qué es mejor descargar y administrar: un millón de archivos de 1 Kb o un archivo de un millón de Kb?

Un archivo enorme es casi siempre preferible. Las respuestas de William y Greg son muy informativas. Algunos ejemplos diarios:

  • En el mundo de Linux suele haber muchos archivos. Esto es lo que veo en la PC con Windows: la carpeta \ AppData \ Local \ GitHub \ contiene 3 702 archivos, 271 subcarpetas – 270 megabytes en total y C: \ Program Files (x86) \ gnucash contiene 4 569 archivos, 672 subcarpetas – 300 megabytes en total . Esas son aplicaciones instaladas que uso todos los días. Los distributivos generalmente se empaquetan en zip / tar.gz / exe y así sucesivamente para un mejor control de lanzamiento y comprobación de hash posterior a la descarga
  • Mi carpeta \ AppData \ Local \ Mozilla contiene 12150 archivos, 260 carpetas – 370 megabytes. Este es el perfil de Firefox + caché del navegador, y se debe a la naturaleza de Internet. Los elementos de caché se crean en momentos aleatorios y se accede a ellos en momentos aleatorios y, por lo general, no los mueve el usuario; ponerlos todos en un contenedor no daría ningún beneficio. Pero si decidiera mover mi perfil de usuario, limpiar esos archivos 12150 (!) Podría ahorrarme una docena de minutos, y el caché se repoblará de todos modos
  • Históricamente, el sistema operativo Windows está más centralizado: registro del sistema frente a muchos archivos de configuración, GAC frente a la carpeta lib local para cada aplicación, por ejemplo
  • Mover muchos archivos pequeños en la misma unidad lógica lleva algún tiempo, porque cada registro de archivo se modifica. Mover un archivo enorme es superrápido, porque solo se actualiza un registro
  • Pasar a otra unidad de registro / física tomará un tiempo proporcional a la velocidad de transferencia de archivos + las mismas acciones que en el párrafo anterior. Pero es bueno saber que el sistema operativo Windows se vuelve muy lento al copiar un archivo que es más grande que la RAM disponible debido al almacenamiento en búfer, por lo que la mejor práctica es utilizar técnicas un poco avanzadas para hacerlo; consulte http://blogs.technet.com/b/ askpe … y http://www.howtogeek.com/73887/b…
  • Las bases de datos son 1 archivo grande en el caso general. Eso brinda más flexibilidad en la copia de seguridad: el trabajo de copias incrementales y diferenciales depende de eso
  • El software como Dropbox y OneDrive puede tomar mucho tiempo incluso para prepararse para la sincronización después de colocar allí unos 50 mil archivos. Es mejor comprimirlos primero con compresión cero: lleva algo de tiempo empacar, pero ahorra mucho tiempo más tarde
  • Si un servidor web está bien para dar acceso a un archivo en particular en múltiples subprocesos, y un cliente también lo admite, entonces las descargas HTTP son tan rápidas como P2P (al menos en el sector del consumidor con una conexión habitual de 10-100 mbit a Internet).

Obviamente sabemos que no hay nada mejor, depende de las aplicaciones.
Tenga en cuenta que 1 millón de kb es aproximadamente 1 Gb, que no es demasiado grande en lo que respecta a una computadora que cumple con los estándares actuales. Para limitar cualquier lectura de confusión, me referiré a un millón de archivos de 1 kb como “un millón de archivos pequeños” y “una gran cantidad de archivos pequeños” y al archivo único de un millón de kb como “un archivo grande”.

Simplemente buscando los archivos, obviamente devolverá un solo archivo grande más rápido que una gran cantidad de archivos pequeños. Incluso almacenando los archivos solos en una sola carpeta, tendría el archivo más grande listo para usar mucho más rápido que una gran cantidad de archivos pequeños. Esto se debe a que en los discos reales del disco duro, los archivos se dispersan por todo el disco físico. Por lo tanto, hacer cualquier cosa que implique abrir o volver a guardar los archivos será más largo de lo que tomaría un solo archivo grande.

Una cosa a considerar es que cada archivo tiene metadatos, esto también ocupa un poco de espacio. Por lo tanto, suponiendo que no nos estamos refiriendo a los metadatos en términos de tamaño de archivo, un archivo de 1 Gb no cambiará mucho, pero un millón de archivos de un solo kb puede crecer rápidamente de tamaño basándose solo en metadatos. Los metadatos serían su nombre de archivo, tamaño de archivo, últimas fechas editadas, etc., y cada archivo en su computadora tiene esto. Esto también respondería a la preocupación de descargar un millón de archivos pequeños en un archivo grande.

La transferencia de un archivo grande será más rápida que una gran cantidad de archivos pequeños debido a las ineficiencias en el tamaño de los paquetes. Es decir, el final de un archivo no llena un paquete completo para enviar el paquete, por lo que, en general, está enviando paquetes más pequeños para los muchos archivos pequeños en comparación con el archivo grande grande que solo necesita un par de paquetes pequeños.

En términos de transporte, este es un caso por caso. La mayor parte de nuestro hardware tiene más de 1 Gb de espacio de almacenamiento, por lo que almacenar un archivo grande o varios archivos pequeños no es un problema. PERO hipotéticamente si este no fuera el caso, entonces una gran cantidad de archivos pequeños sería el claro ganador para el transporte.

En términos de apertura / guardado, nuevamente un archivo grande será más rápido que un millón de archivos individuales. Lleva más tiempo realizar estos procedimientos un millón de veces en lugar de una vez.
Lo mismo se puede decir al leer y buscar un archivo en más de un millón de archivos pequeños. Aunque llevará algún tiempo buscar un archivo de 1 GB, llevará aún más tiempo buscar un millón de archivos pequeños.

En términos de corrupción, debido a que esto sucede, un archivo corrupto puede ser mejor que un millón de archivos pequeños y estás atascado tratando de descubrir cuáles son corruptos y cuáles no. Ahora puede argumentar desde múltiples puntos de vista sobre esto, pero simplemente dijo que estará en mejor forma sabiendo que un archivo está dañado, en lugar de descifrar cuál de un millón de archivos pequeños no está dañado si alguno no lo está. Aunque arreglar un archivo dañado sería más fácil si un solo archivo estuviera dañado, en lugar de cualquier número de un millón de archivos pequeños.

Desde el punto de vista de la organización, un archivo grande es más fácil de mantener y ordenar en lugar de un millón de archivos pequeños.

A decir verdad, la única ventaja real que puedo pensar en múltiples archivos pequeños es la capacidad de abrir más rápida y completamente uno o incluso 10 sobre un archivo grande.

Uno grande Un millón de pequeños archivos será un gigante Pain In The Butt para administrar. Simplemente escribir “ls” en el directorio que contiene estos archivos llevará mucho tiempo, y escribir scripts para administrarlos es tedioso y propenso a errores.

Incluso unos cientos de archivos más grandes no son tan divertidos de manejar. Pero un solo archivo gigabyte es mucho más fácil de manejar en casi todos los aspectos.

Y sus millones de pequeños archivos terminarán ocupando un poco más de espacio que 1 GB, debido al sistema de archivos misceláneos y la sobrecarga del inodo.

Por lo tanto, a menos que exista una buena razón para tener un millón de archivos pequeños, el único archivo grande debería ser la opción.

La versión de muchos archivos es tan mala que su sistema probablemente se bloqueará incluso antes de que alcance la marca del millón. La estructura del directorio sufrirá. La mayoría de las funciones de listado de directorios tienen suposiciones y limitaciones en ellas desde tiempos históricos y necesitarían parches para tener una oportunidad. Algunos sistemas de archivos también tienen límites estrictos para la cantidad de archivos que pueden estar en un directorio.
Una vez necesité alojar una galería con decenas de miles de miniaturas. El espacio flojo era varias veces mayor que los archivos, el acceso era lento e incluso llegué al límite de conteo de archivos en una unidad de memoria USB porque tenía que tenerlo en FAT32. Así que implementé mi propia técnica de almacenamiento similar en idea a los squashfs, excepto que puedo leerlo con php, así como con ASP.NET. Cero espacio libre, rápido, fácil de actualizar (el archivo grande usa el montón, por lo que es seguro para reanudar).
Si alguna vez necesita mantener los archivos fragmentados, debe crear una estructura de directorio para limitar la cantidad de archivos que se unen.

Instancias cuando un archivo de un millón de Kb es útil (1 GB)

  • Mover / copiar 1 GB a una nueva ubicación (velocidades más rápidas)
  • Indexación del archivo (velocidades más rápidas)
  • Encontrar (buscar) el archivo (velocidades más rápidas)

Instancias cuando un millón de archivos de 1 KB es útil

  • Mover solo ciertas partes bajo requerimiento
  • Organización y gestión (saber qué archivo tiene qué datos)
  • Dividir datos completos de 1 GB entre múltiples usuarios, cada uno de los cuales tiene acceso a datos limitados (cifrado de datos y confidencialidad)

Los anteriores son solo algunos, pero debe tener la idea con el propósito de archivos más pequeños.

Al realizar la transferencia de archivos, sería útil un millón de archivos de 1 kb para que pueda usar cosas como BitTorrent (protocolo) y múltiples rutas para lograr una descarga rápida desde múltiples fuentes.

Cuando se almacena en un disco con un tamaño de bloque fijo, un archivo de un millón de kb tendrá mucho menos espacio de bloque e índice desperdiciado que un millón de archivos de 1 kb.

A menos que pueda usar todos los archivos de 1Kb de forma independiente, el archivo 1 con un millón de KB es la mejor opción, porque la tarea en segundo plano (como iniciar una conexión para descargar y cerrar una conexión para descargar) para cualquier operación se realizará para cada archivo, es decir, millones innecesarios operaciones Un archivo es fácil de administrar. Además, un archivo grande puede romperse cuando sea necesario.

Depende de lo que intentes hacer. Si tiene un millón de datos a los que cada 1k solo accede mediante una clave única (por ejemplo, nombre), entonces un millón de archivos puede tener más sentido. Particularmente si van y vienen. Tenemos Amazon S3 cubos más archivos que eso en ellos. En el día en que leí los artículos de noticias de Usenet se almacenaron de esa manera, los servidores de correo aún pueden almacenar mensajes como archivos individuales.

Desde un punto de vista lógico, tiene un millón de grupos de datos almacenados bajo una clave. Elija un medio de almacenamiento que proporcione la combinación correcta de rendimiento, costo y confiabilidad. Redis, Memcache, Amazon S3, el sistema de archivos, la lista de formas de almacenar datos es larga.

El sistema de archivos es solo un almacén de valores clave utilizado por el sistema operativo. Entonces, si necesita acceder solo a partes del archivo al azar, los archivos individuales pueden ser la mejor manera de hacerlo. Si necesita patrones de acceso más complejos o siempre necesita acceder al archivo completo, entonces un archivo grande en forma de base de datos podría tener sentido. Si necesita ajustar un mapa grande / reducir trabajos, entonces ese es un conjunto completamente diferente de herramientas.

Un solo archivo es mejor en casi cualquier forma.
cuando se trata con una gran cantidad de archivos, se dará cuenta de que hay un costo muy alto asociado con ellos.
copiarlos, contar qué tan grandes son, eliminarlos: todas son operaciones que serán muy largas (posiblemente días).
La única ventaja de muchos archivos es que es más fácil acceder a un solo dato contenido en un archivo.
para hacer lo mismo con un archivo grande, necesitará algún tipo de índice que le dirá en qué parte del archivo se encuentran los datos que desea, y posiblemente cuán grande sea.

Un millón de archivos de tamaño completo de 1 kb será más de 1 millón de kb.

Por ejemplo, imagine cuando elimina un archivo de película y un archivo de software (office). El archivo de película se eliminará más rápido, porque solo se necesita borrar una referencia de memoria correspondiente a ese archivo.

mientras que para 1 millón de archivos pequeños, se debe borrar 1 millón de referencias de memoria. ya sea FAT o NTFS.

Dicho esto, cuando descarga un millón de archivos, cada vez que el sistema operativo busca el mejor espacio libre para almacenar ese archivo, cree una nueva referencia de memoria para cada archivo basado en el sistema de archivos, manejando el archivo como un proceso diferente, etc.

Un millón de pequeños archivos disminuirían la velocidad de almacenamiento debido a la tabla de archivos maestros asados ​​y sobrecargados, si el sistema de archivos no es eficiente y el sistema operativo no puede manejarlo.

Se produce un mayor peligro para el almacenamiento casi completo, lo que paralizará las capacidades de partición, porque la desfragmentación segura (registrada) requiere espacio libre.

Entonces, de acuerdo a tu pregunta
1 millón de Kb = (1,000,000) / (1000 * 1000 * 8) [como 8 bits = 1 byte]
equivale a 125 MB

Por supuesto, es fácil administrar un archivo de casi 125 MB que millones de archivos.
Si sus millones de archivos están relacionados entre sí (parte de un programa / software), entonces si un archivo se corrompe o se elimina, todos los demás se vuelven inútiles.
Hace difícil indexar archivos para fines de búsqueda rápida.
Hace que el proceso de copia sea demasiado lento.

Con respecto al propósito de la descarga, apenas hace la diferencia a menos que esté descargando cada archivo manualmente. 😉

Un archivo siempre está asociado a cierta metainformación, esta información ocupa espacio de almacenamiento, por lo que el millón de archivos de 1 kb ocupará más espacio que el archivo de 1 millón de kb.

Para las transferencias, cada archivo requiere algunos paquetes de control, nuevamente más archivos = peor rendimiento.

Para administrarlo, depende de cómo estén organizados los archivos, ya que puede almacenar una valiosa metainformación en el millón de archivos que proporciona una mejor vista de los datos, y también puede facilitar el análisis (ver almacenamiento de correo de maildir vs mbox)

En general, es mejor tener algunos archivos grandes, pero las limitaciones de cada formato se pueden reducir considerablemente con una base de datos adecuada y algunas ideas

Cada vez en cada posición, debe comprender que la cantidad menor es más masa que la misma cantidad de muchos artículos …
voy con un archivo con millones de Kb …

la razón detrás de esto es …
suponga que su disco tiene cada sector de 10kb … entonces el sector necesita cien mil … y para eso solo necesita una tabla de páginas para configurarlo …

ahora considere 1 millón de archivos … entonces necesita 1 millón de sectores para eso … y también una tabla de 1 millón de páginas para ingresarlos …
aquí también aumenta la pérdida de memoria … porque el sistema nunca cambia el tamaño del sector después de crearlo … así que la pérdida de memoria es de 9kb * 1 billón = 9Tb …

ahora tienes que decidir … cuál es bueno …

pero el caso no acaba de terminar aquí …

ahora suponga que voy a crear sectores de 1 kb … luego la tabla de 1 página de archivo individual aumenta la entrada del sector a 1 millón, que es manejado por el sistema …

piénselo y obtenga su respuesta …

Una vez tuve un proyecto con muchos millones de archivos en Windows en .zip.
Navegar por el zip fue rápido, no hubo ningún problema.
Lo extraje al disco duro mecánico.
¡Mis ventanas casi se congelaron!

Así de eficiente es NTFS en Windows.
Si eres desarrollador y te importa la velocidad, ¡aléjate de los archivos pequeños!

Si está utilizando un protocolo TCP, el archivo grande único es más rápido debido al inicio lento de TCP. TCP necesita tiempo para darle una buena cantidad de ancho de banda permitido. Si usa archivos pequeños, siempre comienza lento y luego se acelera. Si se trata de un archivo más grande, comienza lentamente una vez y luego continúa acelerando hasta que está listo.

Descargando? El millón de archivos. Eso es asumiendo que está usando algo como BitTorrent. Asumiendo que quieres velocidad.

¿Gerente? El único archivo. Copiarlo y moverlo a algún lugar es lo mismo que presionar copiar y pegar.

Gracias por A2A

Tu pregunta es realmente interesante

Un millón de archivos de 1kb sería mejor para descargar, pero el uso de dichos archivos en la computadora aumenta el uso de RAM
Entonces, para descargar 1 millón de archivos de 1kb sería mejor y para usar un archivo de 1 millón de KB sería mejor

Un millón de archivos de 1kb con alguna categorización lógica en carpetas separadas.

Si no hay separación lógica, debe fusionarse en un solo archivo.