it-swarm-es.com

¿Cuál es más rápido y por qué: transferir varios archivos pequeños o pocos archivos grandes?

Pronto tendré una carpeta con miles de archivos, cada archivo del orden de unos pocos KB. Tendré que transferirlos a través de una red de Windows de un recurso compartido de UNC a otro. En general, ¿es más rápido simplemente copiar los archivos en masa, o sería más rápido comprimirlos (por ejemplo, usando 7Zip en el modo más rápido) y enviar uno o algunos archivos grandes? ¿O no hay diferencia en la práctica?

17
kestes

Es más rápido transferir un solo archivo grande en lugar de muchos archivos pequeños debido a la sobrecarga de negociar la transferencia. La negociación se realiza para cada archivo, por lo que transferir un solo archivo debe hacerse una vez, transferir n archivos significa que debe hacerse n veces.

Se ahorrará mucho tiempo si Zip primero antes de la transferencia.

37
Jon Cahill

Jon Cahill es muy correcto, un solo archivo será más rápido. Sin embargo, vale la pena tener en cuenta que si hay alguna inestabilidad en la conexión, los archivos individuales (o grupos de tamaño mediano en archivos Zip) pueden ser mejores, porque si la transferencia falla, tendrá que comenzar de nuevo, mientras que con múltiples archivos, solo tendrá que volver a hacer el último archivo iniciado

5
Glenn Slaven

Muchos archivos pequeños también serán más caros de escribir en el sistema de archivos que un solo archivo grande. Necesita hacer cosas como:

  • Verifique que el nombre del archivo sea único
  • Escriba la entrada de la tabla de archivos

A medida que obtiene más y más archivos en un directorio, esto puede ser bastante costoso. Y cada uno de estos pasos puede agregar latencia al proceso de copia y ralentizar todo.

1
Luke Quinane

El tamaño promedio de paquete relativo al tamaño promedio de archivo es probablemente crítico aquí. Con una gran cantidad de archivos pequeños, es posible que envíe muchos paquetes pequeños. Los paquetes pequeños aún incurren en TCP gastos generales; como resultado, podría terminar duplicando la cantidad de tráfico.

Los sistemas modernos e incluso los relativamente antiguos pueden enviar múltiples archivos a través de una sola conexión TCP), evitando los costos de ese apretón de manos.

0
jldugger

Justo lo que he encontrado, pero si desea una transferencia más rápida, inicie la transferencia desde la computadora local y cópiela en la unidad local.

Es decir, copie\computer1\myshare a c:\files\myshare, no use una tercera computadora y copie de\computer1\myshare a\computer2\mynewshare.

0
Tubs

También vale la pena recordar que la elección del protocolo afecta el tiempo total para completar, por ejemplo, los archivos FTP de un host a otro pueden ser notablemente más rápidos que usar el uso compartido de archivos de Windows (por supuesto, los permisos de dominio y similares también perdido, pero en algunas situaciones, esto puede ser una compensación aceptable: después de todo, también se perderían al comprimir/descomprimir)

0
Rowland Shaw